在 switch case 中更改目录 - shell 脚本 (windows)

Changing the directory in swtich case - shell script (windows)

我正在使用 windows 10 和 gitbash 来 运行 下面的脚本

#!/bin/sh

echo "Select - 1 or 0"
while :
do
  read INPUT_STRING
  case $INPUT_STRING in
    1) cd /d/Workspace
       break
       ;;

    0) echo "Exit"
       break
       ;;

    *) echo "Please try again"
       ;;
  esac
done
echo 
echo "Bye!"

我想在select选项1的时候移动到指定的目录,但是好像cd选项没有执行,不知道是什么原因。我怎样才能让它发挥作用?

另外,根目录在c盘/c/Users/username

从问题来看,预期的行为似乎是 运行 脚本,并更改​​调用进程的工作目录。

当前工作目录特定于每个进程。当脚本修改 当前工作目录,它只影响它自己的工作目录。这也将影响将从 运行 宁 shell 开始的任何未来进程。它不会对系统中的其他进程产生影响,这些进程将继续使用它们当前的工作目录。

针对你的顶层shell是git-bash的具体情况,你可以使用source script-name.sh在父进程中执行上面的脚本。采用这种方法将修改当前的 shell 进程工作目录。