Answers:
在Linux下,at
始终警告您它将使用/bin/sh
而不是您喜欢的shell 执行指定的命令。您不能禁止显示此消息,它是在源代码中进行硬编码的。
您传递的命令由解释/bin/sh
。如果愿意,此命令可以是脚本的路径。然后/bin/sh
将执行脚本程序,从而启动脚本的解释器并解释该脚本。脚本的语言完全独立于启动它的程序。因此,例如,如果您要执行bash脚本(即以开头的脚本#!/bin/bash
),只需将脚本的路径传递给at
并忽略不相关的消息。
您可以通过更改脚本shebang的其他外壳来运行它。一些典型的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点等每两个小时运行一次:
0 * / 2 * * * / home /用户名/test.pl
#!/bin/sh
..... 之后仍然抱怨
#!/usr/bin/perl
已经是我脚本中的shebang了,但我得到了警告