Запустите команду в другом окне Cygwin и не выходите
Из текущей оболочки Cygwin я хочу запустить команду (скажем, pwd
) в другом окне Cygwin я использую:
cygstart /bin/bash pwd
Оно породило новое окно Cygwin, но сразу закрылось. Я хочу, чтобы окно все еще открывалось и показывало результат выполнения команды.
Как мне этого добиться?
Заранее спасибо.
2 ответа
Решение
Вы могли бы обернуть это в простую оболочку, которая ожидает некоторого ввода в конце вашей команды. Например, этот достигает этого:
#!/bin/bash
cmd=$*
tmpcmd=/tmp/cygwr.$$
echo "#!/bin/bash" > $tmpcmd
echo "$cmd" >> $tmpcmd
echo "read line" >> $tmpcmd
chmod +x $tmpcmd
cygstart /bin/bash $tmpcmd
rm -f $tmpcmd
- скопируйте это в файл, скажем ~ / cygwrap.sh
chmod + x ~ / cygwrap.sh и затем вызовите его, например:
~ / cygwrap.sh pwd
Попробуйте флаг -i для bash, чтобы сделать его интерактивной оболочкой, и не дайте ей выйти после завершения команды. cygstart /bin/bash -i pwd
, Без -i bash видит, что вы хотите выполнить команду и выйти.