分页: 1 / 1
[已解决]比较字符串的时候为什么在前面加个“X”呢?
发表于 : 2010-03-16 14:57
由 xiaomao101
比如:
代码: 全选
if [ "X${DIR}" = "X" ]; then
或者
代码: 全选
DIR=dir
if [ "X${DIR}" = "Xdir" ]; then
看过挺多脚本都有这样的例子,应该有他的理由吧,不可能没有任何作用的。
那么,在什么情况下"X${DIR}"会不等于"Xdir"呢?
Re: 比较字符串的时候为什么在前面加个“X”呢?
发表于 : 2010-03-17 9:38
由 cosechy
说明是从windows批处理翻译过来的
Re: 比较字符串的时候为什么在前面加个“X”呢?
发表于 : 2010-03-17 10:52
由 xiooli
如果DIR没有值,那么
代码: 全选
if [ "X${DIR}" = "Xdir" ]; then
在忘记打括号的情况下就会成为:
代码: 全选
if [ = "dir" ]; then
这样会出错,所以前面加个字母(不一定是X),防止这种情况发生。
Re: 比较字符串的时候为什么在前面加个“X”呢?
发表于 : 2010-03-17 12:26
由 xiaomao101
xiooli 写了:如果DIR没有值,那么
代码: 全选
if [ "X${DIR}" = "Xdir" ]; then
在忘记打括号的情况下就会成为:
代码: 全选
if [ = "dir" ]; then
这样会出错,所以前面加个字母(不一定是X),防止这种情况发生。
恩,谢了,很有道理阿
Re: [已解决]比较字符串的时候为什么在前面加个“X”呢?
发表于 : 2010-03-17 12:59
由 cosechy
有双引号就不会出问题
这是因为早期windows批处理没有双引号这个概念
遗留下来的
Re: [已解决]比较字符串的时候为什么在前面加个“X”呢?
发表于 : 2010-03-17 12:59
由 cosechy
你试试?
Re: [已解决]比较字符串的时候为什么在前面加个“X”呢?
发表于 : 2010-03-17 13:08
由 xiaomao101
cosechy 写了:你试试?
那个,从windows翻译过来的是什么意思阿,我这边的脚本都是linux下的阿。
Re: [已解决]比较字符串的时候为什么在前面加个“X”呢?
发表于 : 2010-03-18 13:55
由 cosechy
“你试试”应该是回另外一帖的,貌似发错了
Re: [已解决]比较字符串的时候为什么在前面加个“X”呢?
发表于 : 2010-03-18 14:52
由 xiaomao101
cosechy 写了:“你试试”应该是回另外一帖的,貌似发错了
哦