比较shell脚本中的字符串未按预期工作
if语句显示为false,它正在打印else echo。我看了很多网站,他们说这是应该采用的格式。我是否犯了一些语法错误 解决方案 (在条件中,比较shell脚本中的字符串未按预期工作,shell,Shell,if语句显示为false,它正在打印else echo。我看了很多网站,他们说这是应该采用的格式。我是否犯了一些语法错误 解决方案 (在条件中,$var和1之间没有空格。)问题是这一行: if [ "$var1" = "$var2" ]; then 编辑::要确保在两个单独的变量中读取两个值,请使用IFS如下所示: if [ "$var1" = "$var2" ]; then 必须逐1读取变量,而不是在同一行。以hi hi okayNo的形式输入单词,请始终使用引号引用变量,因此使用:如
$var
和1
之间没有空格。)问题是这一行:
if [ "$var1" = "$var2" ]; then
编辑::要确保在两个单独的变量中读取两个值,请使用
IFS
如下所示:
if [ "$var1" = "$var2" ]; then
必须逐1读取变量,而不是在同一行。以hi hi okayNo的形式输入单词,请始终使用引号引用变量,因此使用:
如果[“$var1”=“$var2”];然后
查看我下面关于如何使用读取的回答。有关调试脚本的一些信息,请参阅-输出将向您显示一些问题(“1”
显然与您键入的某个词不同)。这取决于您在读取
之后输入的值。如果输入abc abc
,则If
块将打印这些字符串是相同的
Addecho
for strings+在read
行之后输入它们的长度,并确保字符串是相同的。将变量打印为echo”| var1 | | var2 |“
也请参见我的编辑部分。这是一个选项。另一种是简单地输入用空格隔开的单词。我不认为这有什么区别,但不管怎样,它仍然在说不同的话
if [ "$var 1" = "$var2" ]; then
^---< extra space here <---
if [ "$var1" = "$var2" ]; then
IFS=' ' && read var1 var2
echo "please enter 2 word"
read var1
read var2
if [ "$var1" = "$var2" ]; then
echo "These string are the same"
else
echo "the strings are different"
fi;