Как @MichaelKjörling предложенный в комментариях можно работать ConnectionManager
или сценарий в оконечном мультиплексоре такой как screen
или tmux
.
С Вашим примером управляют, чтобы Вы были почти полностью там:
$ screen -d -m ./ConnectionManager
После того как эта команда работает, Вы отсоединяетесь от терминала, таким образом, Вы не видели бы вывода после ConnectionManager
запускает. Можно снова соединиться с этой конкретной экранной сессией с этой командой:
$ screen -r
Для разъединения от него, Вы используете сочетание клавиш Control+A+D. Я всегда помню мнемоническое "внимание" + "разъединение".
Если необходимо использовать сценарий, можно изменить его немного так, чтобы он также мог также быть выполнен в a screen
сессия.
#!/bin/bash
INFORMIXDIR=/opt/informix
INFORMIXSERVER=server1_on
ONCONFIG=onconfig.eda
PATH=$PATH:$INFORMIXDIR/bin
export INFORMIXDIR INFORMIXSERVER ONCONFIG PATH
echo $INFORMIXSERVER
echo $ONCONFIG
echo "Launch ConnectionManager"
sudo -E /opt/informix/server/ConnectionManager
Вы могли затем запустить этот скрипт тот же путь как ConnectionManager
на экранной сессии:
$ screen -d -m yourscript.bash
И используйте то же подключение, методы разъединения, которые я упомянул выше. С экраном, если у Вас есть больше чем один экран "сессия", можно использовать эту команду для списка их:
$ screen -ls
И затем выберите один из списка для соединения с:
$ screen -r <name>
Например:
$ screen -ls
There are screens on:
1506.bp (Detached)
32090.dl (Detached)
2 Sockets in /var/run/screen/S-root.
$ screen -r 32090.dl
С zsh
:
for d (subdir*(/)) mixb $d/*.(dat|d01)([1])
Эквивалент bash
будет что-то вроде:
shopt -s nullglob extglob
for d in subdir*/; do
[ -L "${d%/}" ] && continue
set -- "$d"*.@(dat|d01)
[ "$#" -eq 0 ] || mixb "$1"
done