実行されるシェルスクリプトがあります。私が持っているスクリプトでは:
if [[ $variable == *something* ]]; then
do something
fi
ここでの問題は、スクリプトを実行すると「[[ not found」が返されることです。
他の回答を読むと、すべてのシェルが二重括弧を認識するわけではないようですが、解決策が何であるかわかりません。そのコードに相当するものは何ですか?
sh
あなたのシェルはビルトインを持たないPOSIX のよう[[
です。考えられる解決策には、それを機能する式に変換するsh
か、シバン行を に変更することが含まれます#!/bin/bash
。一般に、シバンを変更することが最善の解決策です。
sh
Ubuntu を使用している場合は、POSIXを使用している可能性があります。彼らはダッシュを使用します。
角かっこは1つしか知りませんが、かっこを1つだけ使ってみましたか?それ以外の場合は、代わりに使用できますtest
。
POSIX 標準ソリューション:
if test echo "${variable}" | grep -q 'something'
then
# do something
fi
それは常に機能します:)