この行の何が問題になっていますか?
if [ $(getprop | grep '[net.tcp.buffersize.default]:[4096,87380,110208,4096,16384,110208]') ]
grep が getprop 出力で「net.tcp.buffersize...」を見つけた場合、true 値を返す必要があります。
の引数grep
は正規表現です。文字[
、]
および.
には特別な意味があるため、引数は文字どおりには解釈されません。リテラル文字列を探すには、-F
オプションをに渡しますgrep
。正確にその文字列であり、それ以上ではない行を探すには、 を渡し-F -x
ます。
の結果をテストする方法は意味がありgrep
ません。$(…)
出力 (つまり、一致する行) を受け取り、それらを単語に分割します (二重引用符で囲まれていないため$(…)
)。次に、これらの単語 (getprop
出力の一部) がビルトインの条件として解析されます[
。一部の入力に との一致が含まれているかどうかをテストするgrep
には、コマンドの戻りステータスをテストし、出力を抑制するオプションをgrep
渡します。-q
if getprop | grep -q -F -x '[net.tcp.buffersize.default]:[4096,87380,110208,4096,16384,110208]'; then …