为什么自定义 mkcd 命令不起作用?

为什么自定义 mkcd 命令不起作用?

我正在尝试编写一个非常简单的mkcd命令:

#!/bin/bash
mkdir $1
cd $1

目录已创建,但更改目录部分似乎未运行。

根据评论更新:

mkcd () {
  mkdir "$1"
  cd "$1"
}

我尝试首先将其作为本地文件运行:

./mkcd

我的最终位置是/opt/bin,这两个位置似乎都不起作用。

答案1

它需要是一个函数:

mkcd() { mkdir -p "$1" && cd "$1"; } 

脚本将在其自己的单独进程内运行。更改目录不会对父 shell 产生任何影响(也不会像 中那样更改子 shell 内的目录(cd /tmp))。

相关内容