${3#?}は何をしますか?

${3#?}は何をしますか?

次の変数割り当てを含むスクリプトがあります。

TEST_VARIABLE=${3#?}

機能は何ですか${3#?}

ベストアンサー1

これをパラメータ拡張と呼びます。

  1. $3スクリプト/関数の3番目のパラメータである変数。
  2. #変数の最短接頭辞が削除されます。
  3. ?探しているパターンです(この場合はすべての文字)。

3したがって、デフォルトでは、パターンが見つかるまで指定された変数の最短接頭辞を削除します。

一般に、次のことを考慮することができます。

${variable_name[option][pattern]}

次のような他のオプションがあります。

  • ##最大のプレフィックスを削除します。
  • %最短のサフィックスを削除します。
  • %%最大のサフィックスを削除します。

たとえば、他のパターンと組み合わせてCSV行の最後のフィールドを取得できます。

> string="asdf,1234,aa,foo22"
> echo ${string##*,}
foo22

「コンマが続くすべての文字」検索パターンの最大プレフィックスを削除した方法をご覧ください。

おすすめ記事