日期:2014-05-16  浏览次数:20675 次

问大家一个很简单的问题
我用name="xsp"
定义了一个变量
然后我输出echo $name
输出的是xsp
如果我用echo "$name"
输出的是xsp$
$
就是多了一行
为什么
如果我使用[]这个东西来做比较
如果里面的变量我加了双引号就会出现这种问题
如果[ $name == "xsp" ] 验证结果是0
如果[ "$name" == "xsp" ] 验证结果是1
但是加上双引号又是为了避免参数中出现 "str1空格str2"之类的问题
有什么建议呢各位

------解决方案--------------------
按道理说
C/C++ code
#!/bin/sh
name="xsp"
echo $name
echo "$name"

------解决方案--------------------
探讨

不好意思搞错了
换另外一个问题吧
0不是代表结果正确1是错误吗
为什么这里输出$?的结果是反过来的

------解决方案--------------------
试运行了一下,结果应该是
xsp
xsp
楼主可以看一下有关命令替换的东西。
------解决方案--------------------
echo $name
echo "$name"
没看到区别
------解决方案--------------------
探讨
你直接在bash里面输入这两个指令的时候
第一个不会换行
但是第二个会换行啊