8

こんにちは私はbashスクリプトを初めて使用します。この単純なプログラムを書いたばかりですが、エラーが発生しています。

#!/bin/bash
os=`uname -o`
echo $os
if ["$os"=="GNU/Linux"] ; then
    echo "Linux"
else
    echo "Windows"
fi 

どちらの場合も==または-eqを使用すると、次のエラーが発生し、elsecondnが出力されます。

./ostype.sh:3行目:[GNU / Linux == GNU / Linux]:そのようなファイルまたはディレクトリはありません

ウィンドウズ

Bashバージョン:GNU bash、バージョン3.2.48(1)-リリース(x86_64-suse-linux-gnu)

4

2 に答える 2

30

試す

if [ "$os" = "GNU/Linux" ]

スペースとシングルに注意してください=

[は実際にはプログラムであり、残りは引数です!

于 2012-12-19T09:34:39.810 に答える
13

=文字列の比較に使用します。参照:http ://tldp.org/LDP/abs/html/comparison-ops.html

また、角かっこと比較演算子の周りにスペースが必要です。

if [ "$os" = "GNU/Linux" ]; then 
  ^ ^     ^ ^           ^  
  | |     | |           |
   \-\-----\-\-----------\-- (need spaces here)
于 2012-12-19T09:33:51.827 に答える