Добавить новый веб-хук в файл конфигурации alertmanager с помощью оболочки

Этот ответbash-специфичен, потому что вы попробовали echoв bash. Не все оболочки ведут себя одинаково.

В bashесли $var1равно foo, то ${!var1}совпадает с $foo. !является косвенным расширением :, оно заставляет bashизвлекать из данной переменной имя переменной(foo)вместо значения .

Теперь замените var1на #. $#— количество аргументов. Если $#равно 0, ${!#}равно $0. Если $#равно 4, ${!#}равно $4. Другими словами, ${!#}— это последний позиционный параметр, независимо от того, сколько там позиционных параметров.

Если нет позиционных параметров, $#равно 0, поэтому результатом будет $0, которое является именем оболочки или скрипта(ссылка). В вашем случае этоbash(плюс ведущий -, означающий, что это оболочка входа в систему ).

Быстрый тест:

$ echo ${!#}
-bash

$ set the quick brown fox

$ echo ${!#}
fox

0
27.07.2021, 08:56
0 ответов

Теги

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