bash未执行' at -f foo.sh'命令,即使是#!/ bin / bash shebang

时间:2015-03-05 17:59:08

标签: linux bash at-job

我正在使用' at'命令,以创建3个目录,只是一个哑巴bash脚本:

#!/bin/bash
for i in {1..3}
do
mkdir dir$i
done

如果我直接在终端上执行该脚本,但是当我在'使用'时,一切都很好。命令如下:

at -f g.sh 18:06

它只创建一个名为dir{1..3}的目录,将间隔不作为间隔,而是作为具有一个元素{1..3}的列表。根据这一点,我认为我的错误是使用bash脚本,因为at使用/ bin / sh执行命令,但我不确定。 请告诉我,如果我是对的,我会很感激我的代码的一些替代品,因为即使它没用,我也很想知道at和bash的错误。

1 个答案:

答案 0 :(得分:2)

#!行仅影响将脚本作为程序运行时发生的情况(例如,将其用作shell中的命令)。当您使用at时,它不会作为程序运行,它只是用作/bin/sh的标准输入,因此shebang无效。

你可以这样做:

echo './g.sh' | at 18:06