$($isEnabled)
は何も展開されておらず、[ -z ]
に引数が必要なので、このエラーが発生しています。
()
は特別な意味
- を持っているので、あなたが
sh
のためのあなたのコードを書き換えることができ、同じ問題
を防ぐために、二重引用符で$indexFile
を囲むために優れている単一または二重引用符でmyFunc(true)
を配置する必要があり
:として
function some {
local isEnabled=$(grep 'myFunc(true)' "$indexFile" | grep true)
if [ -z "$isEnabled" ]; then
: your logic here
fi
}
あるいは、より直接的に
function some {
# just interested in the presence or absence of a pattern
# irrespective of the matching line(s)
if grep 'myFunc(true)' "$indexFile" | grep -q true; then
: your logic here
fi
}
あるいは、バッシュで[[ ]]
を使用します。
function some {
local isEnabled=$(grep 'myFunc(true)' "$indexFile" | grep true)
if [[ $isEnabled ]]; then
: your logic here
fi
}
'myFunc(true)'はパターンまたは関数呼び出しですか? – codeforester
それは単なるパターンです –
文字列にコードを格納する際の注意点については、[BashFAQ#50](http://mywiki.wooledge.org/BashFAQ/050)を参照してください。 –