シェルスクリプトにおける${p:2:1}の意味

シェルスクリプトにおける${p:2:1}の意味

${p:2:1}誰もが次のシェルスクリプトでこれが何を意味するのか教えてもらえますか?

var1=""
for p in [1,2,3,4]
do
    var1="${var1} ${p:2:1}"
done

答え1

これはパラメータ拡張(Bashマニュアル)、特に次の形式:

${parameter:offset:length}

これを「サブストリング拡張」と説明します。文字をoffset見つける場所(0から始まる)から変数から文字を抽出しますlength。あなたの場合は、${p:2:1}3番目の文字を抽出します。

例:

$ p=abcd
$ echo "${p:2:1}"
c

答え2

それは部分文字列です。文字列の2番目の文字(0から計算)では、p長さ1の部分文字列を使用します。

関連情報