셸에서 파일의 특정 줄을 명령으로 어떻게 실행할 수 있나요?

셸에서 파일의 특정 줄을 명령으로 어떻게 실행할 수 있나요?

내 질문은 여기 스레드를 기반으로 합니다.텍스트 파일에서 특정 줄을 명령으로 실행하는 방법은 무엇입니까?

어떻게 달려야 해?한 세트의 라인텍스트 파일에서?

이것이 내가 지금까지 시도한 것입니다:

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

당신이 기대하는 결과를 만들어 낼 것입니다.

관련 정보