Запустите команду в другом окне 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 видит, что вы хотите выполнить команду и выйти.

Другие вопросы по тегам