【发布时间】:2021-11-25 03:43:24
【问题描述】:
我正在尝试将 csv 文件中的用户添加到在 CentOS 8 上运行的 bash 脚本中的组中。组名是“Faculty”和“Students”,我将它们强制为小写。以下没有工作。它默认使用“else”子句,即使 $groupName 是“Faculty”(我会在 if 语句之前“回显”)。
if [ "$groupName" = "Faculty" ]
then
goodGroup="faculty"
else
goodGroup="student"
fi
但是,当我给它一个只有大写字母的子字符串时,它就起作用了:
if [ "${groupName:0:1}" = "F" ]
then
goodGroup="faculty"
else
goodGroup="student"
fi
使用第二种方法可以得到我需要的结果,我只是好奇为什么第一段代码不起作用。我在 StackOverflow 上看到的所有答案都说这是比较字符串的语法,所以我看不出我做错了什么。
【问题讨论】:
-
您的输入是否有 DOS 行尾? stackoverflow.com/questions/39527571/…
-
请发布
declare -p groupName的输出。The group names are "Faculty" and "Students", which I am forcing them to be lowercase只是${gruopName,,}然后。 -
set -x,启用跟踪,是你的朋友。