запуск нескольких команд в screen

Модератор: Модераторы разделов

ddank1
Сообщения: 4
ОС: linux

запуск нескольких команд в screen

Сообщение ddank1 »

Здравствуйте. Подскажите как заставить работать такой скрипт правильно:

#!/bin/sh
scrfunc() {
echo aaaaaaaaaaaaa
echo dddddddddddddd
top
}
screen scrfunc

когда запускаю пишет no such file scrfunc. Как вы поняли мне нужно чтобы при запуске команды screen туда передавалось сразу несколько команд. Можно конечно scrfunc вынести в отдельный файл, но мне хотелось бы как нибудь организовать все красиво в одном файле_). Через ; тоже не передается. Как быть*?
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: запуск нескольких команд в screen

Сообщение SLEDopit »

Дело в том, что screen запускает новую оболочку, которая знать не знает про вашу функцию.
Делайте так:

Код: Выделить всё

#!/bin/sh
FUNC="scrfunc() {
echo aaaaaaaaaaaaa > a_1
echo dddddddddddddd > a_2
top
}"
screen sh -c "$FUNC ; scrfunc"
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали: