У меня есть скрипт от другого человека, который имеет вид (примечание: это один файл):
#!/bin/bash
some commands
some commands
#!/bin/bash
some commands
some commands
#!/bin/bash
some commands
some commands
Мне интересно, какова цель второго и третьего Шебанга? Это по ошибке или нарочно?
bash
shell-script
shebang
Барат Сахдзиу
источник
источник
#!/bin/bash
предваряется<<
конструкцией (здесь документ) , как:some command <<end_of_script_flag
?<<
конструкций. Просто простые шебанги и некоторые команды удаления (это был скрипт удаления)#!
строками?Uninstall.command
(платформа: Mac OS X).Ответы:
Если эти строки не являются началом включенных сценариев оболочки, которые должны быть построены, то есть внутри схемы вида:
Тогда повторяющаяся конструкция, которую вы нашли, является результатом многих
copy
-paste
полных сценариев оболочки, но без достаточной заботы и понимания того, для чего нужен этот очень специальный комментарий к строке 1 сценариев, начиная с#!
.Будьте осторожны перед использованием такого сценария оболочки (нет
sudo
, нетsu
:)).источник
/bin/rm
(+ пустышка, чтобы кормить робота)!source
зададите им имя. Я не вижу необходимости в мозгах от комментариев, хотя. Это вполне допустимо, и именно поэтому шебанг - это строка комментария.Нет цели, это просто комментарии. Если «некоторые команды» не содержат некоторые команды, которые сохраняют это в отдельный файл для последующего выполнения.
источник
rm
операций, которые удаляют некоторые приложения. Я думал, что это может быть связано с разветвлением новой оболочки, но, очевидно, это была грязная копия, вставленная создателем скрипта.#!
этом используется на уровне ядра (см.man execve
) В любой системе Unix (OpenBSD, FreeBSD, MacOS X, Kali-linux…). Thebash
просто видит это как комментарий.mv ln cp dd vi ...
вместе с 200 другими командами? Почему ты не подчеркиваешь их тоже? Они могут чувствовать себя обделенными.