Ядро интерпретирует строку, начинающуюся с #!
и использует его для запуска сценария, передавая имя сценария; так что это заканчивается запуском
/bin/rm scriptname
, который удаляет сценарий. (Как указывает Стефан Шазелас , , имя сценария
здесь достаточно, чтобы найти сценарий - если вы указали относительный или абсолютный путь, он передается как есть, в противном случае - любой путь было найдено в , добавляется PATH
, включая, возможно, пустую строку, если ваш PATH
содержит это и сценарий находится в текущем каталоге. Вы можете поиграть с эхо-сценарием - #! / bin / echo
- чтобы увидеть, как это работает.)
Как указал hobbs , это означает, что ваш сценарий на самом деле является сценарием rm
, а не bash
скрипт - последний будет начинаться с #! / Bin / bash
.
См. Как запускаются программы , чтобы узнать, как это работает в Linux; комментарии к этой статье содержат подробности для других платформ. #!
называется шебангом, вы найдете много информации, выполнив поиск по этому термину (спасибо Аарону за предложение).Как указано в jlp , вы также найдете его именуемым «фунт-удар» или «хэш-удар» ( #
широко известен как «фунт» - в странах, где нет t используйте £
- или «хеш», и !
как «бах»). В Википедии есть дополнительная информация.
Вы можете установить Tripwire и ввести набор директорий для Tripwire. Когда файл был изменен, Tripwire уведомляет системного администратора.