Файлы Bash открывают терминал при открытии.

Вопрос или проблема

Кажется, это довольно просто сделать, но я никак не могу понять, как это сделать. Я бы хотел, чтобы все bash (*.sh, *.bash) файлы открывались с терминалом, чтобы показывать их вывод.

Если вы собираетесь запустить какой-то скрипт из графического интерфейса и иметь возможность видеть его вывод, вы можете обернуть целевой скрипт в свой собственный. Ваш новый скрипт вызывает terminal->bash->your_script и ждет, пока он не завершится и не выйдет. В скрипте ниже замените ./script.sh на ваше имя скрипта и путь.

#!/bin/bash
# Пример скрипта меню Bash

xterm -e "bash -c \"./script.sh; exec bash\"" &
while [ `pidof xterm` ]
do
wait `pidof xterm`
done

ОБНОВЛЕНИЕ:

Согласно этим популярным ответам, в вашем случае нужно иметь два скрипта.

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

Из Nautilus:

enter image description here

И тогда, когда вы нажмете на ваш скрипт, вам будет предложено:

enter image description here

Из командной строки:

gnome-terminal -e command

или

xterm -e command

или

konsole -e command

или

terminal -e command

Чтобы терминал оставался, когда команда завершится:

В konsole есть флаг –noclose.

В xterm есть флаг -hold.

В gnome-terminal зайдите в Edit -> Profile Preferences -> Title. Нажмите вкладку Command. Выберите Hold the terminal из выпадающего меню с надписью When command exits.

enter image description here

Вы должны создать новый профиль для этого и выполнить команду с помощью

gnome-terminal --window-with-profile=NAMEOFTHEPROFILE -e command

Ответ или решение

Для решения задачи открытия bash-скриптов (.sh, .bash) в терминале с выводом результатов выполним последовательность действий, которая позволяет интегрировать запуск скрипта через графический интерфейс пользователя (GUI), обеспечивая его автоматическое выполнение в терминале.

Теория

При запуске скрипта через GUI, стандартное поведение заключается в открытии текстового редактора, в то время как желаемый результат — это выполнение скрипта в терминальном окне с возможностью наблюдения за его выводом. Это достигается посредством так называемой "обертки": создаем вспомогательный скрипт или используем команду для исполнения целевого скрипта внутри терминального эмулятора.

Пример

Приведем простой скрипт, который запускает bash-скрипт внутри xterm, приостанавливая закрытие окна до завершения его выполнения:

#!/bin/bash
# Пример меню скрипта

xterm -e "bash -c \"./your_script.sh; exec bash\"" &
while [ `pidof xterm` ]
do
wait `pidof xterm`
done

Здесь your_script.sh — это файл скрипта, который вы хотите запустить. Альтернатива — использование других терминальных эмуляторов, таких как gnome-terminal или konsole, где также доступно управление поведением после выполнения команды.

Приложение

Из графического интерфейса Nautilus:

  1. Откройте Nautilus и найдите ваш скрипт.
  2. Кликните правой кнопкой мыши на скрипте и выберите пункт "Свойства".
  3. Вкладка "Разрешения": установите флажок "Позволить выполнение файла как программы".

При двойном клике на скрипте система предложит вам выбрать действие: "Запустить в терминале" и аналогичные варианты.

Командная строка:

Запустите ваш скрипт с конкретным терминальным эмулятором:

  • gnome-terminal -e "bash -c \"./your_script.sh; exec bash\""
  • xterm -e "bash -c \"./your_script.sh; exec bash\""
  • konsole -e "bash -c \"./your_script.sh; exec bash\""

Для предотвращения автоматического закрытия терминала после выполнения команды предусмотрены специальные флаги: --noclose для konsole; -hold для xterm. В gnome-terminal изменение поведения при завершении осуществляется в настройках профиля.

Использование данных подходов позволит упростить и автоматизировать процесс выполнения bash-скриптов в терминальном окне прямо из графического интерфейса, предоставляя удобный доступ к выполнению и мониторингу работы скрипта.

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

Капча загружается...