我尝试比较两个包含"-"的字符串,例如:
if [[ "–change_team" == "${Args[2]}" ]]; then
其中"${Args[2]}"代表"–change_team"
我尝试像这样打印"–change_team":
echo "–change_team"
我得到的是:
âchange_team
if语句从未成功过,我已经尝试使用""进行转义,但效果不佳。
对于用户界面中使用的字符,可能会有几个不同的8位图形字符看起来像连字符。在您的if
语句中:
if [[ "–change_team" == "${Args[2]}" ]]; then
echo "–change_team" | od -c
0000000 342 200 223 c h a n g e _ t e a m \n
0000017
0000000 - c h a n g e _ t e a m \n
0000017
因此,在原始脚本中,用于比较的“连字符”字符不是正确的连字符。
echo "-change_team" | od -c
和echo "${Args[2]}" | od -c
,你看到了什么? - lurker它打印: 0000000 - 改变_团队 \n 0000015
0000000 - 改变_团队 \n 0000015 - Emadecho“-change_team”| od -c
)时,我得到了:0000000 342 200 223 c h a n g e _ t e a m \n
。因此,您在问题陈述中展示的那个不是连字符。 - lurkerif [[ "–change_team" == "${Args[2]}" ]]; then
中的 "change_team" 字符前面使用的连字符。我认为那不是一个连字符。编辑脚本,删除–
并尝试重新输入一个 "真正的" 连字符。 - lurker[[ x-change_team" == "x${Args[2]}" ]]
的内容,否则测试将自动失败。 - Netch