В Linux файлы с расширением имени файла .sh обычно представляют собой сценарии оболочки, которые представляют собой программы, интерпретируемые командной оболочкой. Сценарии оболочки не должны иметь расширение имени файла. На самом деле их можно назвать как угодно. Однако по историческим причинам они часто имеют расширение .sh .
Создание исполняемых скриптов
Сценарии оболочки должны быть помечены как исполняемые, прежде чем вы сможете их запустить. Вы можете проверить права доступа к файлу, также известному как режим файла, просмотрев длинный список каталогов с помощью команды ls -l . Если вы предоставите имя файла, вы получите информацию только для этого файла. Например, здесь у нас есть файл с именем somefile, и мы просматриваем права доступа с помощью команды ls -l somefile :
Десять символов " -rw-r - r-- " представляют режим файла somefile . Дополнительные сведения о разрешениях для файлов см. В разделе Что такое разрешения и как они работают?
Здесь файловый режим указывает, что мы можем читать и записывать некоторый файл, но не можем его выполнить. Мы можем установить разрешение на выполнение с помощью команды chmod, которая меняет режим файла:
Команда chmod u + x somefile устанавливает бит разрешения на выполнение для владельца файла. Вы можете видеть, что строка разрешений теперь имеет х в четвертом месте, которое представляет права владельца на выполнение файла. Также обратите внимание, что имя файла указано в цвете (здесь оно отображается зеленым цветом). Цвет может отличаться в вашей системе, но многие дистрибутивы Linux настроены для указания исполняемых файлов, использующих отдельный цвет, когда вы запускаете команду ls .
Вы можете выполнить этот же процесс для любого файла сценария .sh, который вам может понадобиться выполнить. Например, если вы пишете собственный скрипт и назовете его myscript.sh, вы должны запустить chmod u + x myscript.sh, прежде чем пытаться его запустить.
Выполнение скрипта из командной строки
Чтобы выполнить сценарий оболочки, вам нужно указать путь к сценарию в командной строке. Например, если скрипт называется install.sh и он находится в вашем рабочем каталоге, вы можете запустить его с помощью команды ниже.
./install.sh
Приведенные выше команды говорят оболочке: «выполнить файл install.sh, который находится в текущем каталоге». Если install.sh находится в каталоге myscripts в вашем домашнем каталоге, вы можете запустить его с помощью команды ниже.
~ / MyScripts / install.sh
Примечание. Укажите путь к файлу сценария (а не просто введите, например, inshall.sh ) в качестве меры безопасности: оболочка хочет убедиться, что она запускает правильный файл install.sh, поэтому она требует точного указания его место нахождения.
Единственное исключение - если ваш сценарий находится в каталоге, указанном в переменной среды PATH вашей системы. Если бы это было так, вы могли бы выполнить файл, выполнив команду install.sh .