0

ユーザーが root でない場合にスクリプトをシェルに戻し、終了コードを 5 にしたい

who=`whoami`
if [ echo $who != "root"];
        then exit (5)
else

私は何を間違っていますか?

4

3 に答える 3

0

vinoqadhikary の答えは正しいです。gniourf_gniourf のコメントも、回答の問題を修正しました。

あなたのコードに問題があった理由:

[ 、実際には私のシステムの外部コマンドです。 /usr/bin/[ これはコマンドであるため、シェルが解析できるように、周囲に空白を入れたいと考えています。

type [

システムにあるものを表示します。

次のように括弧内に何かを入れる場合: ( stuff in here ) 注意すべき 2 つの点:

stuff in here 

コマンドとして実行されます。5はコマンドではありません。

次に:stuff in here シェルが理解できる実際のコマンドが必要な場合、シェルはそれを子プロセスとして実行しますが、これは意図したものではありません。

于 2013-06-23T12:39:04.190 に答える