Дорогие, может кто-нибудь объяснить причину вывода 5, когда я вывожу $15. Если переменная 15 не определена, то вывода быть не должно, как во втором примере.
-bash-4.2$ echo $15
5
-bash-4.2$ echo ${15}
-bash-4.2$ echo $USER
kony
-bash-4.2$
-bash-4.2$ echo ${USER}
kony
решение1
Знак доллара зарезервирован, в частности, $0, $1 и т. д. для принятия аргументов. Вам нужно экранировать знак доллара, чтобы вывести значение, или поместить его в одинарные кавычки.
Попробуйте любой из этих вариантов:
echo \$15
echo '$15'
Для вашей команды всегда будет вывод, потому что вы фактически говорите «echo 5». Поскольку для $1
него нет значения, он игнорируется. $0 - $9 зарезервированы системой для ссылки на аргументы. echo $90
вернет 0. и т. д.