스크립트를 실행할 때 shebang 인터프리터에 인수를 전달하는 방법은 무엇입니까?

스크립트를 실행할 때 shebang 인터프리터에 인수를 전달하는 방법은 무엇입니까?

my.script나 한테 이런 게 있다고 해봐

#!/bin/bash

blah
blah

그리고 bash 인터프리터는 하나의 --verbose매개변수를 허용합니다.

--verbose를 bash에 전달하는 my.script를 어떻게 실행합니까?

my.script명령줄에서 bash --verbose my.script를 수행할 수 있다는 것을 알고 있지만 직접 실행할 수 있어야 합니다 .

편집하다:

글쎄, 아마도 내 구체적인 예를 설명해야 할 것 같습니다. 나는 grunt.js 빌드 시스템을 사용하고 있으며 해당 cli는 #! 노드에. 이제 grunt는 플러그인을 실행하는데, 제가 사용한 플러그인 중 하나는 노드에서 특정 플래그를 활성화해야 했습니다. grunt cli 스크립트는 이 작업을 수행하지 않으며 이를 변경하고 싶지 않습니다.

답변1

--verboseShebang 줄에 다음을 추가할 수 있습니다 .

#!/bin/bash --verbose

Linux에서 이 프로그램을 실행하는 경우 커널이 shebang 라인을 처리하는 방식으로 인해 이 방법으로 하나의 매개변수만 추가할 수 있습니다. 쉘 스크립트에서는 set;를 사용하여 특정 쉘 옵션을 제어할 수 있습니다. 이 경우

#!/bin/bash

set -o verbose

blah
blah

(이것은 set해당 줄 이후의 명령 만 표시하지만 --verboseshebang 줄에는 shebang을 포함한 모든 명령이 표시됩니다.)

답변2

테스트.sh:

#!/bin/bash -v
date
:
x=3

실행하면 다음이 생성됩니다.

$ ./test.sh
#!/bin/bash -v
date
Sat Jan 31 21:34:06 VET 2015
:
x=3

답변3

어때요?

node --option `which grunt`

관련 정보