오래 전에 나는 bash 프로그래밍을 했었는데 얼마 후 다른 프로그래밍 언어로 전환했습니다. 제 직업은 bash 스크립트를 봐야 하는데 제가 이해하려고 하는 코드를 발견했습니다.
for var in $(echo $ENV_VARS | cat my_env_vars.txt);$var 내보내기가 완료되었습니다.
"cat" 명령이 파이프라인의 대상이 되는 예를 많이 찾을 수 없는 것 같기 때문에 echo 명령의 결과를 "cat" 명령의 출력에 파이핑하려는 원 작성자의 의도를 이해할 수 없습니다. 누군가 무슨 일이 일어나고 있는지 설명하는 데 도움을 줄 수 있습니까?
ENV_VARS를 설정하여 코드를 실행해 보았지만 "for" 루프 내에서는 "my_env_vars.txt" 파일의 내용만 평가되는 것으로 나타났습니다. 그렇다면 여기서 "에코" 결과를 파이핑하는 것은 무엇을 의미할까요?
답변1
노력하다:
echo $ENV_VARS | cat - my_env_vars.txt
as -
첫 번째 인수는 cat
표준 입력을 첫 번째 파일로 읽고(그리고 데이터를 표준 출력에 기록) 명령에 나타나는 순서대로 명령줄에서 파일 이름을 읽도록 지시합니다(그리고 표준 출력에 기록합니다). ) 선.
매개변수는 -
나중에 나타날 수도 있습니다. my_env_vars.txt
(그러나 명령줄에서 파일 이름을 여러 번 지정하면 cat
파일을 여러 번 열고 읽을 수 있지만 표준 입력( )의 경우에는 그렇지 않습니다 -
.)