Что означает этот символ & ldquo; #? & Rdquo; в кш

0
задан Paul Floyd 22 February 2019 в 10:16
поделиться

1 ответ

Предполагая исправленный синтаксис в то время, как предложил downtheroad ( нужно пустое после [и до]), а также , пропуская « в tt=${tt#"?} (опущенная версия - это то, что вы цитируете ).

Кроме того, тест в состоянии while должен соответствовать пустой строке '' , в противном случае цикл не завершается.

  tt=${tt#?}

[1113 ] отрубает первый символ из строки .

Смотрите эту тестовую программу (я добавил 2 эха и парены, чтобы иметь возможность видеть точное содержимое tt в цикле до и после прерывания:

tt=03
while [ "$tt" != '' ] 
do
 echo "A: (tt=$tt)"
 tt=${tt#?}
 echo "B: (tt=$tt)"
done
echo $tt

дает этот результат (обратите внимание на пустую последнюю строку из последнего эха):

A: (tt=03)
B: (tt=3)
A: (tt=3)
B: (tt=)

0
ответ дан monok 22 February 2019 в 10:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: