Альтернативный способ решения этой проблемы в vmware:
Выключите vm.
Редактировать настройки> Параметры> Дополнительно> Горячая замена памяти / ЦП
В «Горячей замене ЦП» отключите «горячую замену ЦП для этой виртуальной машины».
Включите питание.
Проблема решена.
В случае исходных файлов, я считаю, что лучшим способом является .conf для файлов, которые настраивают ваш скрипт, и .shlib или .shlibs для файлов, которые имеют функции или другие утилиты.
Если вы хотите предотвратить запуск вашего скрипта с неправильной оболочкой, и вам недостаточно хэшбэга, вы можете использовать это:
if [ "$(readlink "/proc/$$/exe")" != "/bin/bash" ]; then
echo >&2 "CAUTION: Wrong interpreter detected. You must use bash."
exit 1
fi
Я бы использовал .sh
(для файлов на языке POSIX sh
, .bash
для несовместимых с sh bash
файлов, то есть расширение определяет язык, на котором написан сценарий) для файлов, предназначенных для источников (или, в более общем смысле, не предназначенных для выполняется), и нет расширения для файлов, которые должны быть выполнены.
Вы также можете добавить:
#! /bin/echo Please-source
she-bang, чтобы при выполнении по ошибке (хотя я ожидал, что этим файлам не должны быть предоставлены разрешения на выполнение, что уже препятствовало бы выполнению), вы получали уведомление о том, что он вместо этого должен быть получен.