Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [Решено] Bash: выполнение функции в отдельном терминале - как?  (Прочитано 2437 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 320
    • Просмотр профиля
Здравствуйте все!
На компе Xubuntu 16.04.
Залип на, казалось бы, простой вещи: в скрипте есть функция, вызывается в тексте скрипта.

#!/bin/bash

zzz() {
echo "Чаво надоть?"
}

zzz
Мне бы хотелось, чтоб она выполнялась не в текущем окне терминала, а в отдельном. Как это сделать?
Вот так не срабатывает :(
xfce4-terminal -x zzzжалуется:"Ошибка выполнения дочернего процесса. Не удалось выполнить процесс-потомок «zzz» (Нет такого файла или каталога)"

Выносить функцию в отдельный файл не хочется.
« Последнее редактирование: 19 Апреля 2018, 16:59:29 от kofesutra »

Оффлайн VladimirIP

  • Любитель
  • *
  • Сообщений: 55
    • Просмотр профиля
#!/bin/bash
zzz() {
xfce4-terminal --hide-toolbar --hide-menubar -e "echo 'hi'" -H
}
zzz

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11312
  • Нетолерантный социопат
    • Просмотр профиля
а так?
xfce4-terminal -e 'echo "Чаво надоть?"'

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 320
    • Просмотр профиля
VladimirIP, Haron Prime, спасибо, друзья! И так и так работает :)
Подскажите ещё, как в функцию прописать больше одной команды? У меня их там десяток.

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11312
  • Нетолерантный социопат
    • Просмотр профиля
Подскажите ещё, как в функцию прописать больше одной команды? У меня их там десяток.
К примеру так
xfce4-terminal -e "command1 && command2 && command3 && ... && commandN"Если использовать оператор && , то команда 2 будет выполняться только после успешного завершения команды 1
Подробнее об операторах - http://citforum.ru/operating_systems/linux/user/gl-05/gl_05_03.shtml
« Последнее редактирование: 19 Апреля 2018, 16:19:41 от Haron Prime »

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 320
    • Просмотр профиля
Haron Prime, не работает :(
xfce4-terminal -H -e "echo 'Чаво надоть?' && echo 'Ась?'"Получается такой выхлоп:
Чаво надоть? && echo Ась?

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11312
  • Нетолерантный социопат
    • Просмотр профиля
не работает
кавычки
P.S> нет, не квычки
может специфика терминала...
я проверял в xterm и urxvt - всё работает
« Последнее редактирование: 19 Апреля 2018, 16:50:15 от Haron Prime »

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 320
    • Просмотр профиля
xfce4-terminal -H -e "echo 'Чаво надоть?'" && "echo 'Ась?'"выдаёт
строка 4: echo 'Ась?': команда не найдена
А если так:
xfce4-terminal -H -e "echo 'Чаво надоть?'" && echo 'Ась?'то "Чаво надоть" выполняется во втором терминале, а вот "Ась?" снова в первом :)

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11312
  • Нетолерантный социопат
    • Просмотр профиля



Пользователь добавил сообщение 19 Апреля 2018, 16:49:33:
"Чаво надоть" выполняется во втором терминале, а вот "Ась?" снова в первом
правильно!
xfce4-terminal -H -e "echo 'Чаво надоть?'" - это первая команда
потом идёт оператор &&
потом вторая команда - echo 'Ась?'
для того, чтобы они выполнялись в отдельном терминале, надо чтобы вся последовательность команд была в кавычках
тогда она воспринимается этим новым окном терминала как единое целое
« Последнее редактирование: 19 Апреля 2018, 16:49:33 от Haron Prime »

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 320
    • Просмотр профиля
Haron Prime, дорогой, спасибо огромное!

Вот это поворот! C xterm
zzz() {
xterm -hold  -e 'echo "Чаво надоть?" &&
echo "Ась?"'
}
всё работает как надо, а вот с xfce4-terminal нет :)

Оффлайн Haron Prime

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 11312
  • Нетолерантный социопат
    • Просмотр профиля
видимо, всё-таки специфика терминала
у меня нет xfce4-terminal, только urxvt и xterm, потому сам проверить не мог

Оффлайн funk2256

  • Активист
  • *
  • Сообщений: 431
  • Arch + Xfce
    • Просмотр профиля
xfce4-terminal

 

У меня как то так.
Feci quod potui, faciant meliora potentes.(Я сделал всё, что смог, пусть те, кто смогут, сделают лучше)
Новичкам
Шпаргалка команд

Оффлайн kofesutra

  • Автор темы
  • Активист
  • *
  • Сообщений: 320
    • Просмотр профиля
У меня как то так.
Выходит, что особенность xfce4-terminal.
Ну, не принципиально, xterm тоже подойдёт :)

 

Страница сгенерирована за 0.03 секунд. Запросов: 23.