如何更改 at 命令的默认 shell

如何更改 at 命令的默认 shell

当我想延迟执行某个程序时at,它精确地指示我

warning: commands will be executed using /bin/sh

bash例如,如何将此默认 shell 更改为?

答案1

请参见发布在 Unix & Linux Stack Exchange 上的问题。第一句话是:

在 Linux 下,at 总是会警告您它将使用 /bin/sh 而不是您喜欢的 shell 执行指定的命令。您无法隐藏此消息,因为它已硬编码在源代码中。

它还提出了一种解决方法:

您传递的命令由 /bin/sh 解释。如果您愿意,此命令可以是脚本的路径;然后 /bin/sh 将执行脚本程序,从而启动脚本的解释器并解释脚本。脚本的语言完全独立于启动它的程序。因此,例如,如果您想执行 bash 脚本(即以 #!/bin/bash 开头的脚本),只需将脚本的路径传递给 at 并忽略不相关的消息。

因此,要使用bash而不是 来运行命令sh,您可以将脚本传递给at。只要脚本中有 shebang 行,它将由 shebang 指向的任何程序执行。如果您使用#!/bin/bash,它将由 执行bash

相关内容