【发布时间】:2015-08-14 04:17:09
【问题描述】:
我已经尝试了How do I compare two string variables in an 'if' statement in Bash?的建议
但这对我不起作用。
我有
if [ "$line" == "HTTP/1.1 405 Method Not Allowed" ]
then
<do whatever I need here>
else
<do something else>
fi
无论如何,它总是转到 else 语句。我什至在此之前呼应了 $line,然后复制并粘贴了结果,以确保字符串是正确的。
任何关于为什么会发生这种情况的帮助将不胜感激。
【问题讨论】:
-
http版本后面可能有换行符?
-
test使用单=进行字符串比较,而不是双== -
顺便说一句,不要回显该行(这不会让您看到不可见的字符),而是尝试使用 bash printf %q 格式将该行显示为 bash 字符串:
printf %q\\n "$line"(引号很重要。)