Кто-нибудь может объяснить мне, что делает оболочка в двух примерах А) и Б) ниже? Это очевидно ведет себя по-разному, но я не могу выяснить, почему результат отличается.
Пример:
у нас будет скрипт в нашем текущем каталоге, названный bla.sh
только одной командой:
echo ${0##/*} hello
А) Начинается
как: ./bla.sh
дает:./bla.sh hello
Б)
Начинается как: . bla.sh
дает:-bash hello
Поскольку я использую это в скрипте, второй вывод (из-за "-" перед -bash) убивает команду. Конечно, простое --
раньше ${...}
помогло, но мне бы очень хотелось понять, чем обусловлен выход в первую очередь.
Я люблю Баш. И ви [м]. Но я отвлекся ...