Должен ли я сохранять свои скрипты с расширением .sh?

У меня есть несколько функциональных сценариев, и я хочу скопировать их в /usr/bin. Я хочу использовать их как обычные команды терминала. Полезно ли использовать их с расширением .sh или я могу сохранить их без расширения?

66
задан 30 July 2014 в 08:41

3 ответа

Нет, это не хорошая практика, необходимо сохранить сценарии без расширения. Отметьте, который сценарии, являющиеся частью пакетов, не имеют расширение .sh, т.е. личинка обновления , не обновление-grub.sh . Если Вас все еще не убеждают, то рекомендуют, тот , Google Shell Style Guide говорит:

Исполняемые файлы не должны иметь никакого расширения (сильно предпочтенный) или .sh расширения. Библиотеки должны иметь .sh расширение и не должны быть исполняемым файлом.

пз Вы не должны помещать свой сценарий в /bin. Можно создать каталог ~/bin и поместить сценарий там. Каталог ~/bin включен в $PATH по умолчанию, таким образом, сценарии, помещенные там, могут быть выполнены как любая другая команда оболочки.

69
ответ дан 30 July 2014 в 08:41

Я второй рекомендация использовать ~/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
    

    Поэтому, если Вы являетесь упаковочными, определенно не учтите расширение.

9
ответ дан 30 July 2014 в 08:41

Просто помещенный после строки наверху файла:

#!/bin/bash

Так, чтобы файл был автоматически типом: Сценарий оболочки без любого расширения!

Не забывают давать разрешение выполнения зарегистрировать.

Для помещения сценария так, чтобы мог быть выполнен прямой командой, посещением: , Куда я должен поместить свой сценарий так, чтобы я мог выполнить его прямой командой?

5
ответ дан 30 July 2014 в 08:41

Другие вопросы по тегам:

Похожие вопросы: