由于某种原因,这个脚本打印"字符串相等"
#!/bin/bash
A='foo'
B='bar'
if [ $A=$B ];
then
echo 'strings are equal'
fi
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
bmk*_*bmk 16
你必须在等号周围留一个空格:
if [ "$A" = "$B" ];
then
echo 'strings are equal'
fi
Run Code Online (Sandbox Code Playgroud)
编辑:请注意变量周围的引号.如果没有它们,如果其中一个是空的,你将遇到麻烦.
否则,如果字符串"foo = bar"的长度> 0,则测试将被解释为test.
见man test:
...
STRING equivalent to -n STRING
-n STRING
the length of STRING is nonzero
...
Run Code Online (Sandbox Code Playgroud)
你应该在equals字符周围有空格:
if [ $A = $B ];
^ ^
There
Run Code Online (Sandbox Code Playgroud)
另外,你应该引用变量,如下所示:
if [ "$A" = "$B" ];
Run Code Online (Sandbox Code Playgroud)