Я б сказав, що ніяких "хороших практик" для розширень файлів не існує суто з технічної точки зору: файлові системи Unix / Linux / * BSD самі по собі не підтримують розширення. Те, що ви називаєте розширенням, - це лише суфікс одного імені файлу. Це відрізняється від файлових систем та ОС Windows VM / CMS, VMS, MS-DOS та Windows, де для розширення відведено спеціальне місце в еквіваленті inode-мораль.
Ця маленька рента зараз закінчилася, я думаю, що трохи нерозумно вводити суфікс ".sh" або ".ksh" або ".bash" на ім'я файлу скрипту оболонки. Програма - це програма: ніякої користі у розрізненні того, що виконується, не існує. Жоден unix чи linux чи будь-яке інше ядро не вирішило викликати інтерпретатора на якийсь файл лише через суфікс імені файлу. Все це робиться за #!
рядком, або якоюсь іншою послідовністю байтів "магічне число" на початку файлу. Насправді, вирішення того, що виконати на основі імені файлу "розширення", є одним із факторів, що робить Windows магнітом зловмисного програмного забезпечення. Подивіться, скільки афери зловмисного програмного забезпечення Windows включає файл з назвою "something.jpg.exe" - за замовчуванням новіша Windows не показує розширення ".exe", і рекомендуйте користувачеві двічі клацнути на "
Те, що ви можете подумати як пряму команду, так чи інакше - це сценарій оболонки. Іноді cc
був sh-скриптом, firefox
sh-скриптом, startx
sh-скриптом. Я не вірю, що маркування сценарію суфіксом ".sh" має пізнавальну чи організаційну користь.
bash script.sh
(абоsh
, звичайно).