2个回答
2018-08-07
展开全部
if[x$1 = x];中$1表示运行shell时传的第一个参数。
即:如果有一个shell文件名为test.sh那么运行命令为
./test.sh a b
其中a为第一个参数b为第二个参数$1就代表的是a这个字母。
在if[x$1 = x];中实际就会判断 xa = x
这样写的主要目的是当如果写成["$1" = "$2" ] 在 $1,$2为空时会在某些bash版本中出现编译错误所以运用了shell中的字符抵消原则。
说简单点就是一种规则,你看代码不管X就行。
即:如果有一个shell文件名为test.sh那么运行命令为
./test.sh a b
其中a为第一个参数b为第二个参数$1就代表的是a这个字母。
在if[x$1 = x];中实际就会判断 xa = x
这样写的主要目的是当如果写成["$1" = "$2" ] 在 $1,$2为空时会在某些bash版本中出现编译错误所以运用了shell中的字符抵消原则。
说简单点就是一种规则,你看代码不管X就行。
展开全部
(命令列第一个参数) $1 如果只等如X, 那就是变量没有内容,是空变量, 也
是用来测试命令列上有没有参数,例如
user@minix-nb:~$ cat a
#! /bin/bash
if [ X$1 = X ]
then
echo "the first argu is empty"
else
echo "the first argu is $1"
fi
user@minix-nb:~$ ./a
the first argu is empty
user@minix-nb:~$ ./a 123
the first argu is 123
user@minix-nb:~$
这样 OK? :)
是用来测试命令列上有没有参数,例如
user@minix-nb:~$ cat a
#! /bin/bash
if [ X$1 = X ]
then
echo "the first argu is empty"
else
echo "the first argu is $1"
fi
user@minix-nb:~$ ./a
the first argu is empty
user@minix-nb:~$ ./a 123
the first argu is 123
user@minix-nb:~$
这样 OK? :)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询