我正在开发一个开源程序,我需要在这里找出错误。 这是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 ()
答案 0 :(得分:0)
您保存的脚本带有Windows行尾(\r\n
而不是\n
),这使Linux程序的bash混乱。在脚本上运行dos2unix
进行修复。