결과를 실행하지 않고 쉘 스크립트에서 에코하는 방법

결과를 실행하지 않고 쉘 스크립트에서 에코하는 방법

이 코드를 사용하여 지정된 변경 목록에 열려 있는 모든 파일을 인쇄합니다.

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

관련 정보