从当前 cygwin shell,我想pwd
在另一个 cygwin 窗口中运行一个命令(例如,),我使用:
cygstart /bin/bash pwd
它确实生成了一个新的 cygwin 窗口,但立即关闭。我希望窗口仍然打开并显示命令执行结果。
我怎样才能实现这个目标?
提前致谢。
答案1
您可以将其包装到一个简单的 shell 中,该 shell 会在命令结束时等待一些输入。例如,这个实现了这一点:
#!/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密码
答案2
尝试将 -i 标志添加到 bash 中,使其成为交互式 shell,并在命令完成时阻止其退出。cygstart /bin/bash -i pwd
如果没有 -i,bash 会认为您想要运行命令并退出。