Не запускается скрипт sh

При использовании операционной системы Linux очень многие пользователи не пренебрегают такой возможностью системы, как написание собственных скриптов командной строки. Скрипты помогают оптимизировать работу с системой, внести долю автоматизации в рабочий процесс и их можно использовать для решения различных задач по администрированию системы. Но новичек в системе может столкнуться с тем, что его первый простенький скрипт почему-то не хочет исполняться.

В данной статье я приведу несколько распространенных элементарных ошибок с которыми сталкиваются новички.

Не указан интерпретатор

Первой строкой в скрипте традиционно указывается интерпретатор с помощью которого следует исполнять последующие команды. Выглядит это следующим образом:

#!/bin/sh

Здесь может быть указан любой интерпретатор, хоть на PHP пиши скрипты:

#!/usr/bin/php
<?php
echo 'hello';
?>

но будь добр путь к нему указать.

 

Скрипту не дали право на исполнение

Второй частой проблемой с запуском скрипта оказывается отсутствие прав на исполнение. Это решается с помощью присвоения специального флага файлу командой chmod:

chmod +x ./script_file

После этого скрипт можно запустить написав в терминале ./script_file находясь в том же каталоге, в котором лежит скрипт или указав до него необходимый путь.

 

Не указан путь к скрипту

Скрипт написан, интерпретатор указан, флаг +x установлен, а терминал все равно выдает «Нет такого файла или каталога»?

При обращении к скрипту находясь в отличном от его расположения каталоге (папке) не забудь указать полный или относительный путь к нему. Например, если скрипт лежит по адресу /home/user/scripts/script, а ты, только открыв терминал и находясь по пути /home/user пишешь ./script, то ничего не произойдет. Для обращения к скрипту либо перейди в каталог скрипта:

cd /home/user/scripts/

или указывай полный (можно и относительный) путь к нему:

/home/user/scripts/script

 

Попытка обратиться к скрипту лишь по имени

Если находясь в одном каталоге со скриптом под названием script просто написать в терминале слово:

script

терминал будет не исполнять твой файл из текущего каталога, а искать одноименные команды. Для того чтобы запустить файл скрипта пиши его имя с указанием пути:

./script

Для того, чтобы использовать скрипт без указания пути, просто как обычную команду можно положить его в каталог /bin или, что правильнее — /usr/bin.

 

Синтаксические или логические ошибки

В случае, если все вышеописанные проблемы исключены, то можно предположить, что в скрипте имеются ошибки в коде, в таком случае остается лишь еще раз тщательно перепроверить исходный код, проверить правильность написания всех команд и конструкций. Если скрипт скачан из сети, то обратиться за помощью с разъяснением непонятных его частей к поисковым системам.

 

 

Добавить комментарий

Есть, что добавить? Нет проблем! Напечатай комментарий и он будет опубликован после проверки.