使用sh脚本时出错

时间:2017-01-03 05:33:05

标签: shell sh

由于sh shell不可用的限制,我正在使用bash shell。下面的代码在bash shell上正常运行,但在sh shell上运行时会抛出错误。

if [[ -n  $(grep -i "${RSA_BACKUP[iter]}: OK" $BACKUP_HASH_TRACK) ]]
  

错误:/etc/backup_infra.sh:第79行:语法错误:错误替换

1 个答案:

答案 0 :(得分:0)

您尝试运行的脚本需要Bash(至少版本4.0)。这是因为它使用

  1. 关联数组(${RSA_BACKUP[iter]})。
  2. [[ ... ]]代替[ ... ]
  3. 现在有很多shell使用[[ ... ]]语法,有些像bash一样,即使它们被调用为sh,也可以理解它。但是,dashash shell不会。

    但主要问题是关联数组。你现在面临的问题是

    1. 完全重写脚本以避免数组和关联数组,或
    2. 安排bash安装此脚本。