首页 > 试题广场 >

shell脚本中,需求如下:如果 ls 

[单选题]
shell脚本中,需求如下:如果 ls /tmp 执行成功输出True,否则输出Fail,下列哪项正确
  • ls /tmp; [[ $# -eq 0 ]] && echo True || echo Fail
  • ls /tmp; [[ $* -eq 0 ]] && echo True || echo Fail
  • ls /tmp; [[ $0 -eq 0 ]] && echo True || echo Fail
  • ls /tmp; [[ $? -eq 0 ]] && echo True || echo Fail
shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败。
结合if-else语句实现判断上一个命令是否执行成功。
-eq
等于
-ne 不等于
-gt
大于
-lt 小于
ge 大于等于
le 小于等于

发表于 2021-09-14 18:30:28 回复(1)

正确答案是 D。

选项 A 中的$#表示命令行参数个数,而不是上一条命令执行结果的状态码。

选项 B 中的$*表示所有命令行参数的字符串,而不是上一条命令执行结果的状态码。

选项 C 中的$0表示脚本名字,而不是上一条命令执行结果的状态码。

选项 D 中的$?表示上一条命令执行的状态码,如果状态码为 0,表示命令执行成功,否则表示执行失败。因此这个选项是正确的。

发表于 2023-03-02 14:30:55 回复(1)