2011-02-01 17 views
3

シェルコマンドが存在する場合は1を返し、そうでない場合は0を返す関数を探しています コマンドのパスを返すwhichコマンドがありますそれが存在します。また、このコマンドでは戻り値があると言われていますが、 をa = `which some_command.bin`に設定しようとすると、aに値が入りません。 私はいつもwhichを使用して結果を解析できることを知っています。私はちょうどクリーナーソリューションを探しています。シェルコマンドがcshellに存在するかどうかを調べる方法

答えて

5

シェルコマンドの戻り値は通常そのように取得されません。一般的にはコマンドを実行する必要があり、特殊環境変数$?が戻り値を返します。

tcshのために、次のトランスクリプトを参照してください:

pax$ which qq ; echo $? 
qq: Command not found. 
1 

pax$ which ls ; echo $? 
/bin/ls 
0 

ちょうどあなたが、私は上記のlsを持っている場所を確認するために好きなコマンドを置きます。

+0

私はシェルコマンドを実行したくないだけで、それが存在するかどうかを知りたがっています –

+0

おそらく私はあなたを理解していませんでした。それは働いた:)ありがとう!! –

+0

@ n00b、それはコマンドを実行していないので、コマンドとしてパラメータを指定して 'which'を実行しています。私はあなたがコマンドが存在するかどうかを知ることができるように、 'which'から戻り値を得る方法を示しています。 – paxdiablo

関連する問題