什么'$?'在shell脚本中意味着什么?

时间:2012-10-05 07:38:47

标签: shell unix

我遇到了一个包含类似

之类语句的shell脚本
if [ $val -eq $? ]

$?在这里意味着什么?

6 个答案:

答案 0 :(得分:19)

$?

返回上次完成的命令的状态。 状态0告诉您所有内容都已完成。

此外,$符号是一个特殊符号 - 在这种情况下$val提取变量val所持有的值

答案 1 :(得分:17)

$# =参数数量。答案是3

$@ =传递了哪些参数。答案是1 2 3

$? =上次命令成功。答案是0,表示“是”。

答案 2 :(得分:15)

我发现link非常有用,是最好的答案。它包括与样本的明确表达。

enter image description here

答案 3 :(得分:3)

  
    

$是什么?这意味着什么?

  

$?退出状态的最后结果... 0默认为“成功”

bash# ls *.*
bash# echo $? 
bash# 0
bash# ls /tmp/not/existing/
bash# echo $?
bash# 2

答案 4 :(得分:2)

这是上一个命令的退出状态的值。如果成功,这是0

答案 5 :(得分:-1)

ls *.*ls会产生相同的结果。含义显示当前目录中包含任何扩展名的零个或多个文件。

echo $?会显示退出状态。如果最后一个命令显示至少一个文件,退出状态将为零(成功)。