我试图了解一些 bash 脚本序列,并且在其中一个步骤中有一个条件:
if [ "x/usr/bin" != "x" ]; then <do some actions>
以下是什么意思?
x
在 x/usr/bin
x
在测试方程的右侧?这是众所周知的 bashism。
如果一个变量($foo
在这个例子中说)可能是空的或可能持有一个值,
如果foo=""
,那么
if [ "$foo" = "bar" ]
扩展到
if [ = "bar" ]
语法错误:-(
如果一个人使用
if [ "x$foo" = "xbar" ]
它扩展到
if [ "x" = "xbar" ]
没有语法错误。
有更好的方法来检查空变量,比如
if [[ -n "$foo" ]]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句