2

我正在使用“at”命令来创建 3 个目录,只是一个愚蠢的 bash 脚本:

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

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

at -f g.sh 18:06

它只创建一个名为的目录dir{1..3},将interval 不作为一个间隔,而是作为一个包含一个元素的列表{1..3}。据此,我认为我的错误是使用 bash 脚本,因为at使用 /bin/sh 执行命令,但我不确定。请告诉我我是否正确,我将不胜感激我的代码的一些替代方案,因为即使它没有用,我也很想知道 at 和 bash 有什么问题。

4

1 回答 1

2

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

你可以这样做:

echo './g.sh' | at 18:06
于 2015-03-05T18:02:56.840 回答