이 코드를 사용하여 지정된 변경 목록에 열려 있는 모든 파일을 인쇄합니다.
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
이러한 쉘 중 하나를 사용하지 않는 경우(Joseph R.이 주석에서 말한 것처럼) 간단한 파이프를 사용하십시오.
p4 opened -c $changelist | while IFS= read -r line; do
echo "$line"
done