1

私の .bashrc には、次のコードがあります

if [`uname` == "Linux"]; then
    echo "It worked"
else
    echo "It didn't work"
fi

しかし、.bashrc を入手すると、次の結果が得られます

[Linux: コマンドが見つかりません

うまくいきませんでした

奇妙なことに[、これはタイプミスではなく、エラーの一部です。if ステートメントをコメントアウトすると、エラーは解消されるので、それがエラーの原因であると確信しています。さらに、 を に変更するLinuxlinux、エラーも小文字に変わります。

uname をエコーすると、Linux が表示されます。

.bashrc を入手するために、コマンド ライン ターミナルにsource .bashrc入力して新しい bash セッションを使用し、開始しました。bash

OS の種類を確認するのはそれほど難しいとは思いませんでしたが、.bashrc の正しい構文を理解できないようです。

私が間違っていることがわかりません。誰か助けてもらえますか?

4

2 に答える 2

9

角かっこの後のスペースを忘れました。最初の行は次のようになります。

if [ `uname` == "Linux" ]; then

お使いのバージョンでは、スペースがないと、[と の出力がunameという名前の 1 つの実行可能ファイルに連結されますが[Linux、これは PATH に存在しません。

于 2012-05-30T20:03:52.423 に答える
4

間隔について細かいことにバッシュします。条件にスペースが必要です

if [ `uname` == "Linux" ]; then
    echo "It worked"
else
    echo "It didn't work"
fi
于 2012-05-30T20:04:28.250 に答える