2

Из текущей оболочки cygwin я хочу запустить команду (скажем, pwd) в другом окне cygwin, которое я использую:

cygstart /bin/bash pwd

Оно породило новое окно Cygwin, но сразу закрылось. Я хочу, чтобы окно все еще открывалось и показывало результат выполнения команды.

Как мне этого добиться?

Заранее спасибо.

2 ответа2

1

Попробуйте флаг -i для bash, чтобы сделать его интерактивной оболочкой, и не дайте ей выйти после завершения команды. cygstart /bin/bash -i pwd . Без -i bash видит, что вы хотите запустить команду и выйти.

0

Вы можете обернуть это в простую оболочку, которая ожидает некоторого ввода в конце вашей команды. Например, этот достигает этого:

#!/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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .