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

Phi*_*ide 3 scripting bash alias

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

#!/bin/bash
mkdir $1
cd $1
Run Code Online (Sandbox Code Playgroud)

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

根据评论更新:

mkcd () {
  mkdir "$1"
  cd "$1"
}
Run Code Online (Sandbox Code Playgroud)

我试图首先将它作为本地文件运行:

./mkcd
Run Code Online (Sandbox Code Playgroud)

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

PSk*_*cik 6

它必须是一个函数:

mkcd() { mkdir -p "$1" && cd "$1"; } 
Run Code Online (Sandbox Code Playgroud)

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

  • 我认为问题是我没有关闭终端来刷新我的 .bashrc (2认同)