如何从变量中删除回车符并将其用于bash中的字符串比较?

时间:2018-09-24 14:14:36

标签: bash if-statement

我在使用双括号比较if语句中的两个字符串时遇到麻烦。这是我下面的内容。 $ statusID变量是从其他位置的文件中提取的,将完全提取“ HELLO”或“ WORLD”,但是在字符串下方使用时不匹配,最终使用else语句代替。

sqrt

我尝试使用通配符,该通配符会起作用,但是稍后在我具有类似变量(例如“ HIHELLO”)时会引起问题,它将运行“ HELLO” if语句而不是“ HIHELLO”。由于这个问题,我不想使用此方法。

 if [[ "$statusID" == "HELLO" ]]; then
     #DO SOMETHING HERE
 elif [[ "$statusID" == "WORLD" ]]; then
     #DO SOMETHING ELSE
 else
     #DO SOMETHING ELSE AGAIN
 fi

我正在尝试比较字符串的字面值。如果$ statusID的值为HELLO,我希望if语句为true并运行该代码。我在堆栈溢出和其他一些站点上也看过其他类似的文章,但我不明白我所缺少的内容。这是我如何提取变量?是我比较它们的方式吗?

我会注意,如果我直接设置变量,例如:

 if [[ "$statusID" == *"HELLO"* ]]; then
     #DO SOMETHING HERE
 elif [[ "$statusID" == *"WORLD"* ]]; then
     #DO SOMETHING ELSE
 else
     #DO SOMETHING ELSE AGAIN
 fi

直接在终端中(而不是运行脚本)似乎匹配正确。

0 个答案:

没有答案