标签: linux bash sh
此示例将脚本的当前目录存储在MYDIR中,并在变量赋值之前和之后回显相同的目录(即使调用了cd),这使我认为命令替换不会影响shell的状态。对于所有命令替换都是如此吗?
#! /bin/bash echo "$PWD" MYDIR="$( cd "$( dirname "$0" )" && pwd )" echo "$PWD"
答案 0 :(得分:4)
实际上;命令替换在子shell中执行。它们无法改变父进程的环境。