Como fazer echo no shell script sem executar o resultado

2

Estou usando este código para imprimir todos os arquivos abertos na lista de alterações especificada.

while read line; do
    echo "$line"
done < 'p4 opened -c $changelist'

No entanto, a linha também é executada e recebo o seguinte erro:

./do.sh: line 7: //perforce/a.js#24 - edit change 353 (text) by user1: No such file or directory

Minha saída obrigatória é:

//perforce/a.js#24 - edit change 353 (text) by user1
    
por Asad Iqbal 29.10.2013 / 21:23

1 resposta

3

Com , e ksh ProcessSubstitution :

while IFS= read -r line; do
    echo "$line"
done < <(p4 opened -c $changelist)

Consulte o link e o link

Se não estiver usando um desses shells (como Joseph R. disse em comentários), use um pipe simples:

p4 opened -c $changelist | while IFS= read -r line; do
    echo "$line"
done
    
por 29.10.2013 / 21:25

Tags