2016-09-29 5 views
2

私は通常bashを使用しますが、この場合はtcshを使用する必要があります。驚いたことに、私はexitの引数として終了ステータスを含む変数を使用することはできません。変数を使用してtcsh終了ステータスを設定できません

[bash] tcsh 
[tcsh] set status=2 
[tcsh] echo $status 
2 
[tcsh] exit $status 
exit 
[bash] echo $? 
0 

予想通りexitにリテラル引数が作業を行います。

[bash] tcsh 
[tcsh] exit 2 
exit 
[bash] echo $? 
2 

地球上で何がここで起こっています?

答えて

3

$statusは、前のコマンドの終了ステータスを含むビルトインのCシェル変数です。二回$statusをエコー試してみて、あなたはそのtcshのが$status 0の値を変更見ることができ、最初のechoコマンドの終了ステータス:

[bash] tcsh 
[tcsh] set status=2 
[tcsh] echo $status 
2 
[tcsh] echo $status 
0 

ソリューションは、単にCシェルではない別の変数名を使用することです組み込み変数:

[bash] tcsh 
[tcsh] set result=2 
[tcsh] echo $result 
2 
[tcsh] exit $result 
exit 
[bash] echo $? 
2 
関連する問題