ECHO'的行为在csh和bash中

时间:2016-08-23 08:04:07

标签: bash shell csh

我写了很少的脚本,突然让我想到CSH和BASH shell中的以下命令。

在csh shell中

$ echo $?BASH
  0
$ echo $?HOME
  1
$ echo $? home
  0 home

在bash shell中

$ echo $?BASH
  0BASH
$ echo $?HOME
  0HOME
$ echo $? home
  0 home

有人解释了上述行为。我知道 echo $?打印出最后一个命令的退出状态,但如果添加了一些字符串,那么它的工作原理是什么?

1 个答案:

答案 0 :(得分:3)

如果您查看文档csh表示:

$?name 
${?name} 
Substitutes the string 1 if the variable name is set, 0 if it is not.

$?0 
Substitutes 1 if the current input file name is known, 0 if it is not.

http://www.mkssoftware.com/docs/man1/csh.1.asp

小心,$?与$?name

不同