0

for ループ内 (i) テストする必要があります。

if [[ "${PARAMETER[$i]}" =~ $(printf "|^%s\$" "${COMMANDS[@]" | cut -c 2-)]]; then....

そして、私の疑問はprintfの部分にあります。うまく説明できていない場合は申し訳ありません。

4

1 に答える 1

1

POSIX の printf 関数は、C の関数とほとんど同じように機能します。ここで、%sは展開されるものに置き換えられ"${COMMANDS[@]"ます。結果には、|^先頭に追加されたものと$追加されたものがあります。

が複数のトークンに展開される場合"${COMMANDS[@]"、結果はそのようなすべての文字列の連結になります。

注: ? の前の空白を忘れました]]か?

于 2013-10-22T09:53:29.080 に答える