CD $Variable 在(Bash)Shell 脚本中使用时不起作用

CD $Variable 在(Bash)Shell 脚本中使用时不起作用

文件名: 测试.sh

#!/bin/bash

ZDir="$(echo /usr/src)"
cd "$ZDir"

当我执行脚本时./Test.sh,该命令cd不执行任何操作。如果我尝试直接在 bash 终端中执行此操作,它就像一个魅力。此外,在脚本内部和外部使用的 echo 都会返回正确的值 ( /usr/src)。

有谁知道为什么会发生这种情况?再说一次:cd $ZDir如果在脚本之外直接在终端中使用,则可以工作......

编辑:无法找到“重复”的答案,但那里的 G-Man 用户准确地回答了我需要做的事情。只需包含一个 && ,然后是我需要执行并工作的下一个命令。函数也可以用于此... cdZDir() { cd /usr/src;制作;进行安装; }

然后直接调用函数即可。

答案1

cd只影响当前的shell 及其后代。 Shell 脚本在新的 shell 进程中运行,因此cd脚本中的 a 仅影响脚本执行的其余部分及其运行的任何程序。

  • 如果你输入像pwdand 这样的命令ls 进入脚本,之后cd,你会看到已经cd成功在脚本中。
  • 如果你说. ./Test.sh,你当前的(主)shell 进程将读取Test.sh 并执行其中的命令。然后您将看到当前(主)shell 进程将位于新目录中。

相关内容