Баш Шебанг для чайников?

У меня есть некоторые сценарии bash, которые у меня установлены, которые в основном используют

#!/bin/bash 

Но я регулярно сталкиваюсь с такими, которые выглядят как

 #!/bin/bash -e #!/bin/bash -x #!/bin/bash -ex 

и так далее.

Может ли кто-нибудь объяснить смысл и преимущества этих вариантов shebang и применимы ли они к другим shebangs?

  • Как переименовать файлы с пробелами с помощью оболочки Linux?
  • Ubuntu / Gnome: открыть приложение в определенной рабочей области
  • Вызов сценария с ./bla.sh vs. bla.sh
  • Как заменить экранный буфер vim предыдущей активностью bash после выхода?
  • Как сделать клавиши со стрелками Ctrl + перемещать вперед / назад слово за раз в Cygwin bash?
  • Gnu screen: найдите, какое окно экрана имеет заданный процесс или переменную?
  • Подключение к сети Wi-Fi через терминал Mac
  • Создание и создание раздела с использованием сценария bash
  • 2 Solutions collect form web for “Баш Шебанг для чайников?”

    Если сценарий /path/to/foo начинается с #!/bin/bash , выполнение /path/to/foo arg1 arg2 эквивалентно выполнению /bin/bash /path/too/foo arg1 arg2 . Если строка shebang равна #!/bin/bash -ex , она эквивалентна выполнению /bin/bash -ex /path/too/foo arg1 arg2 . Эта функция управляется ядром.

    Обратите внимание, что вы можете переносимо иметь только один аргумент в строке shebang: некоторые узлы (например, Linux) принимают только один аргумент, так что #!/bin/bash -e -x приведет к тому, что bash получит единственный пятисимвольный аргумент -e -x (синтаксическая ошибка), а не два аргумента -e и -x .

    Для оболочки Bourne sh и производных оболочек, таких как POSIX sh, bash, ksh и zsh:

    • -e означает, что если какая-либо команда выходит из строя (что указывает, возвращая ненулевой статус), скрипт немедленно завершится.
    • -x заставляет оболочку печатать трассировку выполнения.

    Другие программы могут понимать эти варианты, но с разными значениями.

    Это параметры, переданные в bash см. help set для получения дополнительной информации, в этом случае:

     -x Print commands and their arguments as they are executed. -e Exit immediately if a command exits with a non-zero status. 
    Interesting Posts

    Изменение цвета терминала при подключении к удаленному серверу, Linux

    Разрешить стандартным пользователям запускать программу, требующую повышения UAC

    Как определить причину возобновления спящего режима в Windows 7?

    Как удаленно просматривать рабочий стол Linux из Windows XP?

    USB-накопитель постоянно отключается и снова подключается

    Я хочу расширить раздел на моем SSD-загрузке, но на этом пути есть раздел восстановления и системный раздел EFI. Как я могу обойти это?

    Есть ли подкасты, поддерживающие закладки?

    USB не распознан или не отображается буква диска

    Могу ли я отражать / дублировать события мыши на обеих половинах экрана?

    Дублировать строки на основе своих данных

    Windows Store не запускается

    Как я могу разбирать JSON с C #?

    Мой компьютер постоянно печатает букву p

    64-битный гостевой Windows в VirtualBox невозможно без поддержки VT-x?

    Как настроить новую домашнюю группу в Win 7, когда в сети есть другая настройка домашней группы

    Давайте будем гением компьютера.