답변:
Linux에서는 at
항상 /bin/sh
선호하는 쉘이 아닌로 지정된 명령을 실행한다는 경고가 표시됩니다 . 이 메시지는 표시 할 수 없으며 소스 코드에 하드 코딩되어 있습니다.
전달한 명령은로 해석됩니다 /bin/sh
. 이 명령은 원하는 경우 스크립트의 경로가 될 수 있습니다. 그런 다음 /bin/sh
스크립트 프로그램을 실행하여 스크립트 인터프리터가 시작되고 스크립트를 해석합니다. 스크립트 언어는 스크립트를 시작하는 프로그램과 완전히 독립적입니다. 예를 들어 bash 스크립트 (예 :로 시작하는 스크립트 #!/bin/bash
)를 실행하려면 스크립트 경로를 전달 at
하고 관련이없는 메시지를 무시하십시오.
스크립트 shebang을 변경하여 다른 쉘에서 실행할 수 있습니다 . 전형적인 셰방 라인 :
#!/bin/sh — Execute the file using sh, the Bourne shell, or a compatible shell #!/bin/csh -f — Execute the file using csh, the C shell, #!/usr/bin/perl -T — Execute using Perl with the option for taint checks #!/usr/bin/php — Execute the file using the PHP command line interpreter #!/usr/bin/python -O — Execute using Python with optimizations to code #!/usr/bin/ruby — Execute using Ruby
주어진 시간에 스크립트를 실행하려면 cronjob 을 추가하는 것이 좋습니다
예:
다음 행은 사용자 프로그램 test.pl (명백히 Perl 스크립트)을 자정, 오전 2시, 오전 4시, 오전 6시, 오전 8시 등 2 시간마다 실행합니다.
0 * / 2 * * * /home/username/test.pl
#!/bin/sh
....?
#!/usr/bin/perl
는 이미 내 스크립트에서 shebang이지만 경고 메시지가 나타납니다