如何在shell脚本中回显而不执行结果

如何在shell脚本中回显而不执行结果

我使用此代码来打印指定更改列表中的所有打开的文件。

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

但是,该行也会被执行,并且出现以下错误:

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

我所需的输出是:

//perforce/a.js#24 - edit change 353 (text) by user1

答案1

, 过程替代

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

http://mywiki.wooledge.org/ProcessSubstitutionhttp://mywiki.wooledge.org/BashFAQ/024

如果不使用这些 shell 之一(就像 Joseph R. 在评论中所说),请使用一个简单的管道:

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

相关内容