Вопрос Как запустить .sh-файлы?


Всякий раз, когда я открываю файл .sh, он открывается в gedit вместо терминала. Я не могу найти вариант, похожий на Правый клик → Открыть с → Другое приложение ... → Терминал,

Как открыть этот файл в терминале?


247
2018-05-01 02:39


происхождения


Этот сценарий нацелен на создание переменных env для дальнейшего использования? - Rob
Вы не должны использовать расширения для скриптов. В какой-то момент в будущем вы можете обнаружить, что другой язык более подходит для выполнения задачи, которую выполняет ваш текущий скрипт. И тогда у вас есть проблема. Сохраняете ли вы старое имя с полностью вводящим в заблуждение расширением или вы его переименовываете, возможно, нужно много редактировать места, где используется ваш сценарий? - geirha
Вам не требуется расширение файла. Приятно иметь, но не нужно. ОС не смотрит на расширение файла. Он рассматривает данные - ActionParsnip
Meh, если вы переписываете foo.sh в ruby, вы всегда можете использовать файл .sh для запуска ruby foo.rb - glenn jackman
В Dolphin вы можете нажать F4 и открыть консоль - Motte001


ответы:


Предоставьте разрешение на выполнение для вашего скрипта:

chmod +x /path/to/yourscript.sh

И для запуска вашего скрипта:

/path/to/yourscript.sh

поскольку . ссылается на текущий каталог: if yourscript.sh находится в текущем каталоге, вы можете упростить это:

./yourscript.sh

379
2018-05-01 03:18



+1 только ответ, чтобы показать добавление разрешений на выполнение только в терминале. - Hailwood
Если вы это сделаете bash /path/to/yourscript.sh то вам не нужно chmod +x - Aleksandr Levchuk
Фактически, вы можете использовать . /path/to/yourscript.sh если скрипт должен установить некоторые переменные среды. - Rob
Никто не упоминает традиционный: ./path/to/yourscript.sh (без пробела после .)? Я считаю, что один из них самый простой и простой в использовании ... Но в любом случае, вот моя альтернатива, которая должна делать почти то же самое, что и ./ хотя я не понимаю, почему вы не будете использовать ./: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME) ... редактировать FILENAME на ваш вкус. Также отметим, что sh будет использоваться, если альтернативы нет. - MiJyn


Вы должны пометить сценарии оболочки как исполняемые для их запуска из файлового менеджера:

  1. Щелкните правой кнопкой мыши .sh файл и выберите свойства:

    enter image description here

  2. в права доступа вкладка, проверка Разрешить выполнение файла как программы:

    enter image description here

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

    enter image description here


72
2018-05-01 03:02



Хороший w / скриншоты - gd1
Это не работает в Ubuntu 13.04. Так или иначе, он все равно открывает в gedit, никогда не просит меня выполнить. Редактировать: Nvm, imjustmatthew отвечает на это. - mpen
Прежде чем использовать это, нам нужно сделать разрешение файла для выполнения с помощью chmod. chmod + x filename.sh или chmod 755 filename.sh - Arvind Rawat
У меня нет всплывающего окна! IDE открывается сразу, а не всплывающее окно - Green
@ DanielMöller, вот ответ на ваш вопрос. askubuntu.com/questions/38661/how-do-i-run-sh-files/... - Akhilesh Dhar Dubey


необходимое условие

Прежде чем вы сможете запустить файл .sh, вам необходимо сделать его выполнимым:

  1. Щелкните файл правой кнопкой мыши
  2. Выбрать свойства
  3. Выбрать права доступа
  4. Выбрать Разрешить выполнение файла как программы

Предупреждение

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

Очень простой способ

  1. Дважды щелкните файл
  2. Нажмите кнопку запуска в терминале

Это проблема. Терминал немедленно закроется, и вы не сможете увидеть выход.

Простой способ

  1. Открытые приложения -> Аксессуары -> Терминал
  2. Перетащите файл .sh в терминал и нажмите Enter.

Как это делают профессионалы

  1. Открытые приложения -> Аксессуары -> Терминал
  2. Найти где файл .sh

    • Использовать ls а также cd команды
    • ls будут перечислены файлы и папки в текущая папка, Попробуйте: введите «ls» и нажмите Enter.
    • Когда вы увидите папку, в которую хотите войти, запустите cd, затем пробел, за которым следует имя папки
    • Если вы в папку, которую вы не хотите, запустите cd .. идти на один уровень вверх
  3. Запустите файл .sh

    • Как только вы увидите, например script1.sh с ls выполните следующее:

      ./script.sh

Почему это сложный путь?

Терминал имеет богатый набор мощных инструментов, доступных для ввода команд. Профессионалы определяют файл .sh, введя ls а также cd, Когда вы находитесь в правильном текущая папка вы можете запустить скрипт следующим образом:

./script1.sh

или вы можете запускать и перенаправлять вывод в файл:

./script1.sh > out.txt

или вы можете отфильтровать вывод для ключевых слов (например, «яблоки»), а затем перенаправить на файл:

./script1.sh | grep apples > ./only-apples

Есть тысячи вещей, которые вы можете сделать для этого файла, просто набрав несколько команд.

Другой, вы можете загрузить файл из Интернета с помощью одной простой команды:

wget www.google.com/images/logos/ps_logo2.png

Затем откройте файл следующим образом:

shotwell ps_logo2.png

22
2018-05-01 02:52



Я не уверен, что Как это делают профессионалы является правильным, это скорее случай простой способ  расширенный (для управления выходом) путь - Hailwood


Откройте терминал и перейдите в папку, в которой .sh файл находится. Затем введите:

sh <name of file>.sh

18
2017-12-20 07:43





В Ubuntu 13.04 исполняемые файлы, открытые в Nautilus, теперь открываются в gedit по умолчанию, а не запрашивают выполнение пользователем. Чтобы включить классическое поведение, вам необходимо настроить настройки:

Nautilus → Меню «Правка» → «Настройки» → вкладка «Поведение» → каждый раз щелкайте переключателем рядом с вопросом «Спросить».


15
2018-06-10 21:41



Человек, задавший вопрос, говорит о Ubuntu 10.10 - edwin
Спасибо!!! Я не знаю, почему они изменили это, не могли понять, как выполнить что-либо. - mpen
Это правильный ответ для последнего ubuntus. - gaRex
Как вы добираетесь до Наутилуса в 15.10? - Yaakov Ainspan


Перейдите в каталог, в котором .sh файл используется cd, В этом примере я сохранил свой sh файл как ~/Desktop/shell_practice/test.sh

сначала сделайте pwd выяснить, где вы находитесь, и если он вернется /home/username (где username ваше настоящее имя пользователя), вы можете запускать

cd Desktop/shell/practice

Если вы, кажется, находитесь где-то в другом месте, вы можете использовать абсолютный путь

cd ~/Desktop/shell/practice

или

cd $HOME/Desktop/shell/practice

или даже

cd /home/$USER/Desktop/shell/practice

это все способы описания одного и того же места. Когда вы перейдете к местоположению своего сценария, введите

ls

Если вы видите sh файл на выходе, вы можете использовать chmod чтобы сделать его исполняемым. Помните, что в моем случае имя файла test.sh, поэтому я буду запускать

chmod u+x test.sh

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

./test.sh

Если ваш скрипт написан правильно, он будет работать без ошибок ...

Вот живой пример: Here is live example


5
2017-12-03 11:14



Это помогло мне установить Netbeans на ubuntu - RuD3B0y
Wb, @ RuD3B0y, я старался держать ответы лучше всего для noobs, без высокотехнологичного контента, если у вас есть некоторые изменения, которые вам нравятся. - TheExorcist


2 основных шага.

  1. в терминале, используйте gedit для записи и сохранения сценария с расширением «.sh» на рабочем столе. (но можно использовать любой текстовый редактор)

  2. откройте Nautilus и щелкните правой кнопкой мыши файл script.sh.

    • под свойствами, установите флажок «разрешить выполнение файла ..»

    • в меню «Наутилус», нажмите «Файл», затем «Настройки», затем «Поведение»

    • проверьте «запустить исполняемые текстовые файлы при их открытии».

Теперь, когда вы дважды щелкните файл на рабочем столе, он должен выполнить. нет необходимости в . или ./


3
2017-10-24 14:24