我在 bash 中遇到变量替换问题。我正在按照下面的代码中的说明进行操作,但是 cd $d 在扩展 $var 后不会进入原始目录
export var="/a/b/c"
for d \`cat file.f`; do
cd $d
done
文件.f:
$var/aa/bb/cc
答案1
您需要使用eval
:
export var="/a/b/c"
for d in $(cat file.f)
do
eval echo "$d"
eval cd $d
pwd
done
或者更好的是,使用 read:
export var="/a/b/c"
while read d
do
eval echo "$d"
eval cd "$d"
pwd
done < file.f
答案2
您可以使用:
$ var="/home/durrantm/a/b/c"
$ cd $var
$ pwd
/home/durrantm/a/b/c