Я пробую следующий код в оболочке для расширения параметров
#!/bin/sh
count
echo ${count:-60}
echo ${count:=120}
echo $count
echo ${count:+80}
x = 'The host name is google'
echo ${#x}
Выход
./test_varexp.sh: line 2: count: command not found
60
120
120
80
./test_varexp.sh: line 7: x: command not found
0
С приведенным выше кодом и выводом в контексте у меня есть следующие вопросы:
Расширение параметра с помощью символа '=' должно установить значение count равным 120, что также рассматривается как происходящее, когда мы печатаем значение count, но в следующей строке оно перезаписывается, когда я использую то же самое с "+", которое следует только проверить на наличие. Может кто-нибудь объяснить эту аномалию? или Может кто-нибудь объяснить, существует ли счетчик на самом деле или нет?
Расширение параметра для
${#x}
вообще не работает. Может ли кто-нибудь сказать мне, есть ли синтаксическая ошибка?
Я пробую приведенный выше код
[root@dtltrhel5u8 shellscripts]# uname -a
Linux dtltrhel5u8 2.6.18-308.el5 #1 SMP Fri Jan 27 17:17:51 EST 2012 x86_64 x86_64 x86_64 GNU/Linux