为什么为什么不断向我显示关于现存错误()?

时间:2019-03-08 20:57:46

标签: linux bash shell

我正在开发一个开源程序,我需要在这里找出错误。 这是linux-meant的BASH脚本。

我无法弄清楚这段代码出了什么问题:

#!/usr/bin/env bash

declare -a dependenciesList=(
  "element2"
  "element3"
  "element4"
)

#check des dependences dans le systeme actuel:
#____________procedure de verification de l'existance de la dependance
exists ()
{
  command -v "$1" >/dev/null 2>&1
}

#____________procedure de l'installation de la dependance
install ()
{
  echo "[INSTALL] '$1' installation started"
  apt-get install "$1"
}

#____________procedure coeur
for i in "${dependenciesList[@]}"
do
  echo "[CHECK] Verification de l'existance de la dependence : $i"
  # or do whatever with individual element of the array
  if exists "$i"; then
    echo " $i [OK]"
  else
    echo "[CHECK][ERROR][CRITICAL] Le systeme n'a pas $i ,appel a la procedure d'installation "
    install "$i"
  fi
done

函数处的代码块始终退出,并返回以下错误日志:

./linux.dependencies.check.bash:  syntax error near unexpected token `$'\r''
'/linux.dependencies.check.bash: `exists ()

1 个答案:

答案 0 :(得分:0)

您保存的脚本带有Windows行尾(\r\n而不是\n),这使Linux程序的bash混乱。在脚本上运行dos2unix进行修复。