bash 不执行 'at -f foo.sh' 命令,即使使用 #!/bin/bash shebang
bash is not executed 'at -f foo.sh' command, even with #!/bin/bash shebang
我正在使用 '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.
有什么问题
#!
行仅影响当您 运行 将脚本作为程序时发生的情况(例如,将其用作 shell 中的命令)。当您使用 at
时,它不是 运行 作为程序,它只是用作 /bin/sh
的标准输入,所以 shebang 没有任何效果。
你可以这样做:
echo './g.sh' | at 18:06
我正在使用 '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.
#!
行仅影响当您 运行 将脚本作为程序时发生的情况(例如,将其用作 shell 中的命令)。当您使用 at
时,它不是 运行 作为程序,它只是用作 /bin/sh
的标准输入,所以 shebang 没有任何效果。
你可以这样做:
echo './g.sh' | at 18:06