0
在MYDIR中存儲腳本的當前目錄的這個例子在變量賦值之前和之後(即使調用了cd)回顯了相同的目錄,導致我認爲命令替換不會影響shell的狀態。所有的命令替換都是如此嗎?做命令替換不會影響shell的狀態嗎?
#! /bin/bash
echo "$PWD"
MYDIR="$(cd "$(dirname "$0")" && pwd)"
echo "$PWD"
在MYDIR中存儲腳本的當前目錄的這個例子在變量賦值之前和之後(即使調用了cd)回顯了相同的目錄,導致我認爲命令替換不會影響shell的狀態。所有的命令替換都是如此嗎?做命令替換不會影響shell的狀態嗎?
#! /bin/bash
echo "$PWD"
MYDIR="$(cd "$(dirname "$0")" && pwd)"
echo "$PWD"
確實;命令替換在子shell中執行。他們不能改變父進程的環境。