Как запускать sh скрипты на Ubuntu


В этой статье расскажу про запуск Shell скриптов (*.sh) на Ubuntu.

Файл *.sh это скрипт, сценарий в системе Linux.
При запуске его выполняются поочередно команды записанные в него.

На самом деле это просто текстовый файл с инструкциями для системы Linux, которые выполняются поочередно.

Давайте напишем простой .sh скрипт, который запустим в нашей системе.

Создайте текстовый файл в вашей домашней директории, откройте его и напишите в него следующие строчки:
#!/bin/bash
echo "Hello World"
Сохраните его, как hello.sh
У вас получится вот такой текстовый файл в домашнем каталоге:


Вот мы и создали sh скрипт.

Как запустить sh скрипт из командной строки?

Для этого нужно:
1. Перейти в каталог нахождения скрипта, с помощью консольной команды cd. Так как мы сохранили этот скрипт в домашней директории, то переходить в какой либо каталог не нужно.

2. Сделать наш файл исполняемым.
Для этого введите команду chmod +x и имя файла скрипта: chmod +x hello.sh

3. Теперь запускаем его: ./hello.sh
Также можно запустить следующей командой: sh hello.sh
Если всё правильно сделали, то в консоле выведется "Hello world":

Как запустить sh в графическом интерфейсе (GUI)?

1. Переходим в каталог с нашим sh скриптом:


2. Проверяем, чтобы в его свойствах стояла галочка "Разрешить выполнение", для этого: правой кнопкой мыши - свойства - права:


3. В принципе, файл должен запускаться при двойном щелчке мышки:


Но могут быть проблемы, что файл открывается текстовым редактором, хотя галочка на выполнение стоит.

Это решается так: 
В Наутилусе (это файловый менеджер Ubuntu), переходим Правка - Параметры, и проверяем:


На вкладке "Поведение" в пункте "Исполняемые текстовые файлы" должно быть выбрано или "Каждый раз спрашивать" или "Запускать исполняемые текстовый файлы при открытии".
Разница у них в том, что если выбрать "Каждый раз спрашивать", то у вас будет выбор: запустить скрипт в консоле или в графическом интерфейсе. Во втором случае запуск будет только в графическом режиме.

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

Но если Вы хотите создать ярлык для sh скрипта в системе Ubuntu, то прочтите следующую мою статью:



Вот и всё!

Поделиться:

Если у Вас возникли вопросы.

Приглашаю задавать их на сервисе вопросов и ответов: Ask LinuxRussia.com.
Там Ваши вопросы не потеряются и Вы быстрее получите ответ, в отличие от комментариев.

20 коммент. :

  1. Очень интересный у Вас ликбез! :)
    Спасибо!

    ОтветитьУдалить
  2. Анонимный29 июля 2013 г., 21:43

    Помогите пожалуйста с решением проблеммы. Я обновился до 13.04 и теперь в ритмбоксе появился баг, онлайн радио не хочет воспроизводится, решение этой проблеммы написание в консоли следующей строки - "sudo killall gvfsd-http", но после каждого перезапуска системы это немного напрягает. Можно ли создать скрипт чтобы он сам выполнял в консоли это действие, а потом еще и добавить его в автозагрузку? Буду благодарен если поможете.

    ОтветитьУдалить
    Ответы
    1. А в автоматические запускаемые программы пытались записать эту строку?

      Удалить
    2. Хороший совет:Удали к чертям Ритмбокс и работай с Clementine , Banshee , Exale и другими адекватными плеерами.

      Удалить
  3. Спасибо, очень помогла статья - не хотели sh скрипты заводиться. Привык с ярлыка их заводить.

    ОтветитьУдалить
  4. вы решили мою проблему, которая очень мне надоела (с открыванием скрипта в текстовом редакторе), за что Вам огромное спасибо!

    ОтветитьУдалить
  5. Анонимный23 июня 2014 г., 18:11

    Пасиба, помогло!

    ОтветитьУдалить
  6. Скрипт не запускался, пока не поправил параметры-изменить - вылезал текст. После правки параметров искомое окно с кнопками "запустить" и "запустить в терминале" появляется. Но при нажимании на них ни чего не происходит. Чо дальше-то делать?

    Запускаю скрипт fido_linux.64.sh сижу на убунту v.14.04 LTS, 64x

    С этим интерфейсом убунты столкнулся недавно, сидел на 10.04, с лаконичными выпадающими 3 пунктами меню (программы, перейти, настроить). С консолью и консольными командами ("напильником") работать не умею.

    Возможно, что скрипт мой таки запустился и сработал. Только где искать ярлыки для настройки - хз.

    ОтветитьУдалить
  7. Присоединяюсь к комментарию выше. intellij IDEA запускаю в виндовс версии через wine(((((
    не могу запустить ни один sh файл((

    ОтветитьУдалить
  8. Камера как была перевернута со времен первых ubuntu , так и осталась.
    Понятно что дело как бы не в скайпе, дело в UVC.
    Но могли бы и учесть, и добавить функцию вращения камеры.

    ОтветитьУдалить
  9. Большое спасибо за объяснение проблемы с Наутилусом!

    ОтветитьУдалить
  10. Огромное спасибо за статью. ;)

    ОтветитьУдалить
  11. Спасибо, избавился от проблема, когда файл не выполнялся из gui

    ОтветитьУдалить
  12. Добрый день!
    Подскажите а каким образом удалять программы установленные через sudo sh

    ОтветитьУдалить
  13. как зайти в параметры наутилуса?)

    ОтветитьУдалить
    Ответы
    1. В новой версии нужно открыть наутилус и навести курсор на серую полосу сверху там будет "правка".

      Удалить
  14. Щиро дякую!
    А как запустить sh файл горячими клавишами?

    ОтветитьУдалить
  15. А что делать если sh запускается но выводится системное сообщение Не получилось

    ОтветитьУдалить