나는 다른 쉘 스크립트에서 정의 된 함수를 호출하는 마스터 쉘 스크립트를 가졌다. 마스터 스크립트에는 'source'명령을 사용하는 다른 스크립트가 포함되어 있습니다. 나는 그 스크립트에서 그녀가 뱅 ("#!/bin/sh")에 무엇을 설정했는지에 상관없이 모든 스크립트에 대해 공통적 인 인터프리터를 사용하고자합니다. 그 통역사를 명령 줄에서 제공하고 싶습니다. 예를 들어 !쉘 스크립트에서 sha bang 인터프리터를 재귀 적으로 덮어 쓰는 방법은 무엇입니까?
master.sh (! #과/빈/SH)
subscript1.sh (! #과/빈/SH)
subscript2.sh (#와/빈/첨자로 정의하고 '소스 subscript1.sh', '소스 subscript2.sh'로 포함 된 함수를 호출 master.sh SH)
subscript3.sh (#와!/빈/SH)
및 'source subscript3.sh'.
./master.sh를 실행할 때 아래 첨자는 "#!/bin/sh"줄의 지시에 따라 각각의 인터프리터를 사용합니다. 나는 모든 것을 '/ bin/bash', master와 subscript를 사용하여 실행하고 싶다. 그러나 그녀는 그와 같은 스크립트가 많이 있기 때문에 bang 라인을 변경하지 않고있다. 이 일을 할 수있는 방법이 있습니까?
답변 주셔서 감사합니다, Barmar. 그러나, 나는 그것을 시도하고 작동하지 않습니다. 나는 그녀가 bang 라인을 갖는 것에 대한 생각이 어떤 프로세스 나 쉘이 스크립트를 시작하는지에 관계없이 정의 된 인터프리터를 사용하는 것이라고 생각한다. 확실히 이것에 대한 명확성이 필요합니다. – Navin
그것은 세 발이 작동하는 방식이 아닙니다. 인터프리터에 대한 입력 파일이 아닌 명령으로 실행하는 경우 스크립트를 실행하는 방법을 커널에 알려줍니다. – Barmar
'bash./master.sh'는'cat./master.sh'와 같습니다. 둘 다 지정한 명령을 실행하고 인수로 파일 이름을 지정합니다. 'bash'는 파일을 해석하고,'cat'은 파일을 출력합니다. – Barmar