2

実行されるシェルスクリプトがあります。私が持っているスクリプトでは:

if [[ $variable == *something* ]]; then
   do something
fi

ここでの問題は、スクリプトを実行すると「[[ not found」が返されることです。

他の回答を読むと、すべてのシェルが二重括弧を認識するわけではないようですが、解決策が何であるかわかりません。そのコードに相当するものは何ですか?

4

3 に答える 3

3

shあなたのシェルはビルトインを持たないPOSIX のよう[[です。考えられる解決策には、それを機能する式に変換するshか、シバン行を に変更することが含まれます#!/bin/bash。一般に、シバンを変更することが最善の解決策です。

shUbuntu を使用している場合は、POSIXを使用している可能性があります。彼らはダッシュを使用します。

于 2012-05-22T13:51:39.177 に答える
1

角かっこは1つしか知りませんが、かっこを1つだけ使ってみましたか?それ以外の場合は、代わりに使用できますtest

于 2012-05-22T13:52:47.240 に答える
1

POSIX 標準ソリューション:

if test echo "${variable}" | grep -q 'something' 
then
   # do something
fi

それは常に機能します:)

于 2012-05-22T14:40:58.023 に答える