LINUX.ORG.RU

Запуск баш-скрипта в интерактивном режиме


0

0

Есть скрипт, стартующий сервер. Скажем, server.sh

Хочу написать другой скрипт (скажем, launcher.sh), который запускает терминал, единожды выполняет server.sh в нем, и терминал остается на экране (даже если все программы там завершились).

У gnome-terminal есть опция --command, но после того как команда отработала, он закрывается.

У bash тоже есть опция -c, и оно тоже закрывается, когда команда отработала.

Каким образом сделать так, чтобы после выполнения команды, данной в параметрах, терминал не выключался? Нужно графику, поэтому очень желательно gnome-terminal...

P.S. такая строчка: (gnome-terminal --command=«screen bash») не работает, gnome-terminal ругается «Произошла ошибка при создании дочернего процесса для этого терминала»....

★★★★☆

may be

gnome terminal -e "launcher.sh"

i can't test it, because i have no pc at the moment

darth-nerd
()
Ответ на: комментарий от nnz

> После server.sh добавить exec bash.

дело в том, что в server.sh выполняется пара прог, запущенных в фоне через «&».

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

то есть, баш должен оставаться тот же самый, который запускал server.sh. Просто не вылетать после выполнения команды.



stevejobs ★★★★☆
() автор топика

еще подробнее

Допустим, у нас есть файл a.sh с текстом:

#!/bin/bash
vim &

если мы после этого выполним команду:

gnome-terminal --command="/home/stevejobs/a.sh"

или даже (как советовали выше по треду)

gnome-terminal --command="/home/stevejobs/a.sh &"

то терминал просто мигнет и закроется.

а надо чтобы не закрывался.

stevejobs ★★★★☆
() автор топика
Ответ на: еще подробнее от stevejobs

Попробуйте через профили.

File > New Profile

Profile name test

Title and command

Run custom command instead of my shell

скрипт

When the command exits keep the terminal open

Hoodoo ★★★★★
()
Ответ на: комментарий от system-root

Гы, у меня хостнейм тоже asus.

[tartan@asus ~]$ cat ~/test.sh

#!/bin/bash

ping http://www.ya.ru &

sakura -h -e ~/test.sh

выдаёт пустое окно сакуры, без ничего. А автору надо вывод программы.

Автор, а что вообще надо, опишите, может, есть обходные пути, а?

Hoodoo ★★★★★
()
Ответ на: комментарий от Hoodoo

Ну там перенаправление выводов и конки например, даже можно конки в сосбтвенном окне запустить, а не в виде обоев. М?

Hoodoo ★★★★★
()
Ответ на: комментарий от Hoodoo

не нужно просто всех этих амперсандов в конце.
хочется странного, придётся прогнуть скрипт в линейную форму.

system-root ★★★★★
()

может read n в конце добавить?

maloi ★★★★★
()

Не знаю, как в gnome-terminal, а в konsole есть опция --hold.

#!/bin/sh
konsole  --hold -e bash -c "ping 10.0.0.190"

При выполнении такого скрипта консоль остается на экране после нажатия ^C и остановки ping.

oami ★★
()

xterm -e 'ls; exec bash'

Вместо ls подставь любую команду

Для gnome-termonal немного сложнее: gnome-termonal -e 'bash -c «ls; exec bash»'

anonymous
()

Всем спасибо :) Ни одно из решений не помогло, ну да и ладно.

Я отредиректил весь вывод в файлы, и наваял прогу, которая сливает их, показывает их все одновременно и работает с этим объединенным выводом уже сама. Криво, страшно, но работает. Ну и лунчер, который последовательно запускает сначала проги с редиректом, а потом прогу их объединяющую.

В принципе, под конец придумалось альтернативное решение: специальный юзер, которому в .bash_profile прописано на автомате запуск всех этих прог.

stevejobs ★★★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.