У меня есть несколько функциональных сценариев, и я хочу скопировать их в /usr/bin
. Я хочу использовать их как обычные команды терминала. Полезно ли использовать их с расширением .sh
или я могу сохранить их без расширения?
Нет, это не хорошая практика, необходимо сохранить сценарии без расширения. Отметьте, который сценарии, являющиеся частью пакетов, не имеют расширение .sh, т.е. личинка обновления , не обновление-grub.sh . Если Вас все еще не убеждают, то рекомендуют, тот , Google Shell Style Guide говорит:
Исполняемые файлы не должны иметь никакого расширения (сильно предпочтенный) или .sh расширения. Библиотеки должны иметь .sh расширение и не должны быть исполняемым файлом.
пз Вы не должны помещать свой сценарий в /bin
. Можно создать каталог ~/bin
и поместить сценарий там. Каталог ~/bin
включен в $PATH
по умолчанию, таким образом, сценарии, помещенные там, могут быть выполнены как любая другая команда оболочки.
Я второй рекомендация использовать ~/bin
, который автоматически добавляется к Вашему $PATH
, как сказанный Sergey. Или /usr/local/bin
, который может уже быть на PATH
. Однако:
Расширения являются редкими в /usr/bin
. В моей системе я могу найти только два:
$ dpkg -S `ls /usr/bin/*.sh`
mtools: /usr/bin/amuFormat.sh
gettext-base: /usr/bin/gettext.sh
Поэтому, если Вы являетесь упаковочными, определенно не учтите расширение.
Просто помещенный после строки наверху файла:
#!/bin/bash
Так, чтобы файл был автоматически типом: Сценарий оболочки без любого расширения!
Не забывают давать разрешение выполнения зарегистрировать.
Для помещения сценария так, чтобы мог быть выполнен прямой командой, посещением: , Куда я должен поместить свой сценарий так, чтобы я мог выполнить его прямой командой?