1 つの bash スクリプトで、次の構造を見つけました。
if [[ "${xvar[id]:0:${#cnt}}" != "$cnt" ]]; then
誰かが上記の条件が何をするのか説明できますか?
1 つの bash スクリプトで、次の構造を見つけました。
if [[ "${xvar[id]:0:${#cnt}}" != "$cnt" ]]; then
誰かが上記の条件が何をするのか説明できますか?
複雑な式は次のとおり${xvar[id]:0:${#cnt}}
です。
$xvar
配列である必要があり、おそらく連想的である必要があります。連想的である場合、その部分${xvar[id]}
は文字列'id'で識別される配列の要素を参照します。そうでない場合は、コメントでchepnerが指摘しているように、変数によってインデックス付けされた要素を参照します$id
(ネストされたものは省略できます)。$
式の${xxx:0:${#cnt}}
一部は、オフセット0から変数の長さまでの部分文字列を参照します$cnt
(変数${#cnt}
内の文字列の長さも同様です$cnt
)。
${xvar[id]}
全体として、テストはの最初の文字がの値と同じであるかどうかをチェックします$cnt
。したがって、の値$cnt
のプレフィックスの値も同じ${xvar[id]}
です。