Problema de substituição de variáveis Bash

0

Eu tenho um problema com a substituição de variáveis no bash. Eu estou fazendo como explicado no código abaixo, mas cd $ d não está indo para o diretório original, ou seja, depois de expandir $ var

export var="/a/b/c"
for d \'cat file.f'; do
cd $d
done

arquivo.f:

$var/aa/bb/cc
    
por Sathish 21.01.2015 / 11:00

2 respostas

1

Você precisa usar eval :

export var="/a/b/c"
for d in $(cat file.f)
do
    eval echo "$d"
    eval cd $d
    pwd
done

ou melhor ainda, usando a leitura:

export var="/a/b/c"
while read d
do
        eval echo "$d"
        eval cd "$d"
        pwd
done < file.f
    
por 21.01.2015 / 11:23
0

Você pode usar:

$ var="/home/durrantm/a/b/c"
$ cd $var
$ pwd
/home/durrantm/a/b/c
    
por 21.01.2015 / 13:19