回答:
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
所定の時間にスクリプトを実行するには、cronジョブを追加することをお勧めします
例:
次の行は、ユーザープログラムtest.pl(表面上はPerlスクリプト)を2時間ごと、午前0時、午前4時、午前6時、午前8時などに実行します。
0 * / 2 * * * /home/username/test.pl
#!/bin/sh
....?
#!/usr/bin/perl
は既に私のスクリプトのシバンですが、警告が表示されます