Bash에서 변수 대체에 문제가 있습니다. 아래 코드의 지침을 따르고 있지만 $var를 확장한 후 cd $d가 원래 디렉터리로 이동하지 않습니다.
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