bash shell 中 if 条件中的字符串比较错误

Error in string comparison in if condition in bash shell

我需要从配置文件中读取一些属性,并在属性匹配某些值时执行一些命令。 但是当我尝试在 if 条件下将值与字符串进行比较时,它不起作用。

下面是我正在尝试做的事情的一个小版本。

#!/bin/bash
source config.file

echo "mode: $mode"

if [ "$mode" = "slow" ];
then 
echo "Mode is slow"
fi

配置文件如下所示。

###config###
mode=slow
user=admin
password=pwd
###end###

echo 语句将值打印为“慢”,但永远不会满足 if 条件。 我做错了什么?

对我有用。也许您在配置文件中有 MSWin 行结尾?

运行

dos2unix config.file

fromdos config.file

将它们转换为 *nix 标准。