这个示例将脚本的当前目录存储在mydir中,它在变量赋值前后(即使调用了cd)回送相同的目录,这使我认为命令替换不会影响shell的状态。所有命令替换都是这样吗?

#! /bin/bash

echo "$PWD"
MYDIR="$( cd "$( dirname "$0" )" && pwd )"
echo "$PWD"

最佳答案

实际上,命令替换是在子shell中执行的。它们无法更改父进程的环境。

10-07 16:35