我使用此代码来打印指定更改列表中的所有打开的文件。
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/ProcessSubstitution和http://mywiki.wooledge.org/BashFAQ/024
如果不使用这些 shell 之一(就像 Joseph R. 在评论中所说),请使用一个简单的管道:
p4 opened -c $changelist | while IFS= read -r line; do
echo "$line"
done