test命令是返回true/false,仍是返回0/1到$?这个变量里

test命令是返回true/false,还是返回0/1到$?这个变量里?
&&和||,是根据$?这个变量确定要不要执行吗?
------解决思路----------------------
$? 这个是shell提供的记录上一次执行命令的返回值

./a.exe 这个是一条命令
expr1 && expr2 也是一条命令

至于 &&和
------解决思路----------------------
 条件判断与C语言中的是一致的

总之,每当shell执行一条命令结束时,下一个命令可以通过$?得到上一个命令的返回值,仅此而已。别想复杂了。
------解决思路----------------------
引用:
Quote: 引用:

$? 这个是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
不是
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

$? 这个是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.test命令是返回true/false,仍是返回0/1到$?这个变量里
------解决思路----------------------
$? 存储上一条命令的返回值,只要是运行的命令,就可以用$?的输出来查看上命令是否运行成功。