2016-08-23 9 views
1

私はいくつかのスクリプトを書いていましたが、私は突然CSHとBASHシェルで次のコマンドを考えてしまいました。cshとbashでの 'ECHO'の振る舞い

CSHシェルで

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

$ echo $?BASH 0BASH $ echo $?HOME 0HOME $ echo $? home 0 home 
bashシェルの誰かが上記の動作を説明します。私は エコー$を知っていますか?は最後のコマンドの終了ステータスを表示しますが、いくつかの文字列を追加するとその動作はどうなりますか?

+2

http://stackoverflow.com/questions/16975968/what-does-var-mean-in-csh私も知らなかったので、私はそれを検索し、約20秒でそれを発見した。 – 123

答えて

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

は$、注意が必要? $とは異なります。

+0

ありがとう! BASHはどうですか? –

+0

'?BASH'は有効なパラメータ名ではないので、' $?BASH'はパラメータ展開 '$?'とリテラル文字列 'BASH'の2つの部分で構成されています。 – chepner