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

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

#!/bin/bash 

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

  • Папки, названные в качестве текущего месяца по командной строке
  • Как создать автоматический запуск скрипта без выбора Ubuntu?
  • FTP-скрипт не будет передавать удаленные файлы на локальный компьютер
  • Установка тега заголовка ID3 равным имени файла MP3
  • Postgresql скрипт для второго экземпляра?
  • Несколько стандартных входных сигналов? Как?
  •  #!/bin/bash -e #!/bin/bash -x #!/bin/bash -ex 

    и так далее.

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

  • Процесс bash использует 90% процессор, возвращается на перезагрузку компьютера
  • Bash говорит мне, когда новый компьютер подключается к локальной сети через smbclient
  • Bash: пробелы в псевдониме
  • Баш, как глобально исправить ^ H и ^? Проблемы с обратным пространством
  • Как я могу извлечь только некоторые определенные папки из архива tar.gz?
  • Linux merge folders: rsync?
  • 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. 
    Давайте будем гением компьютера.