내 질문은 여기 스레드를 기반으로 합니다.텍스트 파일에서 특정 줄을 명령으로 실행하는 방법은 무엇입니까?
어떻게 달려야 해?한 세트의 라인텍스트 파일에서?
이것이 내가 지금까지 시도한 것입니다:
Input file:
1 #!/usr/bin/csh -v
2
3 date
4
5 echo "abc"
6
7 set cell="bananas"
8
9 set cmd = "echo apples \
10 oranges \
11 graped $cell"
12
13 echo $cmd
14
sed -n '5,13 p' /tmp/1 | sh
다음을 제공합니다:
abc
(blank line)
이것이 나머지 줄을 실행하지 않는 이유는 무엇입니까? 아니면 내가 의심한 대로 실행은 되지만 명령이 새로 실행되기 때문에 출력이 제공되지 않습니까? 단일 쉘 세션 대신 매번 sh(ell)를 사용하시겠습니까?
감사해요!
답변1
sh
스크립트가 예상한 것과 다른 쉘을 사용하고 있기 때문에 테스트가 실패합니다 csh
.
sed -n 5,13p /tmp/1 | csh
당신이 기대하는 결과를 만들어 낼 것입니다.