Официальный стандарт / соглашение для расширения файла для сценариев оболочки для источника

Альтернативный способ решения этой проблемы в vmware:

Выключите vm.

Редактировать настройки> Параметры> Дополнительно> Горячая замена памяти / ЦП

В «Горячей замене ЦП» отключите «горячую замену ЦП для этой виртуальной машины».

Включите питание.

Проблема решена.

10
12.12.2017, 18:14
2 ответа

В случае исходных файлов, я считаю, что лучшим способом является .conf для файлов, которые настраивают ваш скрипт, и .shlib или .shlibs для файлов, которые имеют функции или другие утилиты.

Если вы хотите предотвратить запуск вашего скрипта с неправильной оболочкой, и вам недостаточно хэшбэга, вы можете использовать это:

if [ "$(readlink "/proc/$$/exe")" != "/bin/bash" ]; then
      echo >&2 "CAUTION: Wrong interpreter detected. You must use bash."
      exit 1
fi
4
27.01.2020, 20:00

Я бы использовал .sh (для файлов на языке POSIX sh , .bash для несовместимых с sh bash файлов, то есть расширение определяет язык, на котором написан сценарий) для файлов, предназначенных для источников (или, в более общем смысле, не предназначенных для выполняется), и нет расширения для файлов, которые должны быть выполнены.

Вы также можете добавить:

#! /bin/echo Please-source

she-bang, чтобы при выполнении по ошибке (хотя я ожидал, что этим файлам не должны быть предоставлены разрешения на выполнение, что уже препятствовало бы выполнению), вы получали уведомление о том, что он вместо этого должен быть получен.

18
27.01.2020, 20:00

Теги

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