test命令是返回true/false,仍是返回0/1到$?这个变量里
test命令是返回true/false,还是返回0/1到$?这个变量里?
&&和||,是根据$?这个变量确定要不要执行吗?
------解决思路----------------------
$? 这个是shell提供的记录上一次执行命令的返回值
./a.exe 这个是一条命令
expr1 && expr2 也是一条命令
至于 &&和
------解决思路----------------------
条件判断与C语言中的是一致的
总之,每当shell执行一条命令结束时,下一个命令可以通过$?得到上一个命令的返回值,仅此而已。别想复杂了。
------解决思路----------------------
我怎么看着两个都回答了?
1. test为真返回的是0啊,echo $? 就可以知道啊
2. &&和
------解决思路----------------------
的执行和$? 不相关啊,就像ret = func()中的ret一样,ret只是记录了函数func()的返回值啊,fanc()怎么运行与ret不相关啊。
有一点想对楼上修正的是:“ &&和
------解决思路----------------------
条件判断与C语言中的是一致的” ,C中1为真,0为假,但是在shell中不是这样的,如
[ 1 == 1 ] && [ 2 == 3 ] 这样的表达式,前者返回的是0,后者返回的是非0,所以整个表达式返回的是非0,为假。
shell中返回0为真,非0为假,因为正确的情况只有一种,而错误的类型却有很多种。
------解决思路----------------------
0/1
不是
------解决思路----------------------
You got it.
------解决思路----------------------
$? 存储上一条命令的返回值,只要是运行的命令,就可以用$?的输出来查看上命令是否运行成功。
&&和||,是根据$?这个变量确定要不要执行吗?
------解决思路----------------------
$? 这个是shell提供的记录上一次执行命令的返回值
./a.exe 这个是一条命令
expr1 && expr2 也是一条命令
至于 &&和
------解决思路----------------------
条件判断与C语言中的是一致的
总之,每当shell执行一条命令结束时,下一个命令可以通过$?得到上一个命令的返回值,仅此而已。别想复杂了。
------解决思路----------------------
我怎么看着两个都回答了?
1. test为真返回的是0啊,echo $? 就可以知道啊
2. &&和
------解决思路----------------------
的执行和$? 不相关啊,就像ret = func()中的ret一样,ret只是记录了函数func()的返回值啊,fanc()怎么运行与ret不相关啊。
有一点想对楼上修正的是:“ &&和
------解决思路----------------------
条件判断与C语言中的是一致的” ,C中1为真,0为假,但是在shell中不是这样的,如
[ 1 == 1 ] && [ 2 == 3 ] 这样的表达式,前者返回的是0,后者返回的是非0,所以整个表达式返回的是非0,为假。
shell中返回0为真,非0为假,因为正确的情况只有一种,而错误的类型却有很多种。
------解决思路----------------------
两个问题一个都没回答
0/1
不是
------解决思路----------------------
$? 这个是shell提供的记录上一次执行命令的返回值
./a.exe 这个是一条命令
expr1 && expr2 也是一条命令
至于 &&和
------解决思路----------------------
条件判断与C语言中的是一致的
总之,每当shell执行一条命令结束时,下一个命令可以通过$?得到上一个命令的返回值,仅此而已。别想复杂了。
两个问题一个都没回答
我怎么看着两个都回答了?
1. test为真返回的是0啊,echo $? 就可以知道啊
2. &&和
------解决思路----------------------
的执行和$? 不相关啊,就像ret = func()中的ret一样,ret只是记录了函数func()的返回值啊,fanc()怎么运行与ret不相关啊。
有一点想对楼上修正的是:“ &&和
------解决思路----------------------
条件判断与C语言中的是一致的” ,C中1为真,0为假,但是在shell中不是这样的,如
[ 1 == 1 ] && [ 2 == 3 ] 这样的表达式,前者返回的是0,后者返回的是非0,所以整个表达式返回的是非0,为假。
shell中返回0为真,非0为假,因为正确的情况只有一种,而错误的类型却有很多种。
第一个问题:shell里面test返回0为真,返回1或127或其他数字为假,是这样吗?
第二个问题:我说的
------解决思路----------------------
和&&是应用在一次性执行多条命令上,前面的命令返回$?为0,执行&&后面的;前面的命令返回$?为非0,执行
------解决思路----------------------
后面的。
You got it.
------解决思路----------------------
$? 存储上一条命令的返回值,只要是运行的命令,就可以用$?的输出来查看上命令是否运行成功。