Bash变量替换问题

Bash变量替换问题

我在 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

相关内容