$ {p: 2: 1} Значение в сценарии оболочки

Может кто-нибудь сказать мне значение ${p:2:1} в сценариях оболочки, как в:

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

Это (нестандартное) расширение параметров (руководство Bash) , в частности, в форме:

 ${parameter:offset:length} 

который описывается как «расширение подстроки». Он извлекает символы из переменной, начиная со offset (начиная с нуля) и заканчивая символами length . В вашем случае ${p:2:1} извлекает третий символ.

Пример:

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

Это подстрока. Он берет от второго символа (считая от 0) строки p подстроку длины 1.