2017-10-12 17 views
0

gemがインストールされているかどうかをチェックするbashスクリプトを作成しようとしています。宝石がインストールされている場合ではない場合、私はオプションAを行います、私は宝石がインストールされている場合は、私が使用して確認するには、オプションB."gem"を実行して結果を確認するIF文付きのBashスクリプト

を行います。

gem list -i "^gemname$" 

これは、「true」または「false」印刷します画面に表示されます。テキスト "true"と "false"を出力すると思いますが、戻り値があるかどうかはわかりません。

私が探していた宝石は、 "xcpretty" であると私のスクリプトは次のようになります。これはエラーで失敗し

if [[$(gem list -i "^xcpretty$") == true]]; then 
    echo "Found XCPRETTY do other things" 
else 
    echo "Cant find XCPRetty do things" 
fi 

: .xxxxx:行1:[[偽:コマンドが見つからない

宝石は私のシステムにインストールされていないので、 "偽"を返しました。しかし、どのように返されたものを「偽」と比較するのですか?

ありがとうございます!

+0

はまた、私はこの1つをチェックする: https://unix.stackexchange.com/questions/52800/how-to-do-an-if-statement-from-the-result-of-a -executed-command しかし、それは私が探しているものと全く一致しません – SpecialEd

答えて

2

[[の後に、そして]]の前にスペースを追加します。

[[ $(gem list -i "^xcpretty$") == true ]] 
+0

ああ、ありがとう、それでした! – SpecialEd

関連する問題