【问题标题】:array declaration of shellscript doesnot work in scheduled cron job?shell 脚本的数组声明在计划的 cron 作业中不起作用?
【发布时间】:2017-03-10 16:20:09
【问题描述】:

我创建了一个名为“script.sh”的 shell 脚本,它读取数组元素并将其打印在终端上。脚本如下:

 arr=("hello" "world")
for i in ${arr[@]}
do
echo  $i;
done

它在终端中执行时会给出预期的输出,即“Hello World”,但如果我在 crontab 作业中安排相同的脚本每分钟自动执行一次并将输出存储在另一个文件中,则作业失败并给出

/home/vikash/script.sh: 1: Syntax error: "(" unexpected 错误。

每分钟执行一次脚本并将输出存储在另一个文件中的 crontab 作业如下:

* * * * * $HOME/script.sh >> $HOME/output.log 2>&1

在这种情况下如何使用数组??请帮忙。

【问题讨论】:

  • #!/bin/bash 是否位于script.sh 的顶部?
  • 哦!是的,我没有添加 #!/bin/bash。感谢它现在工作。

标签: linux shell cron crontab


【解决方案1】:

在脚本的第一行之前添加:

#!/bin/bash

【讨论】:

    【解决方案2】:

    如果这个问题仍然有效,只需运行您的脚本

    bash script.sh
    

    我也用 sh 尝试过,但它不能用 sh 工作,但用 bash 可以顺利运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-03
      • 2019-01-23
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多