如何禁用Shell脚本运行时的控制台弹窗并实现执行状态本地输出或文件重定向
解决Shell脚本运行时窗口一闪而过的问题
我来帮你搞定这个头疼的问题!不管是在PyCharm、PowerShell还是CMD里,都有对应的办法让你看清执行输出,或者把输出存下来慢慢看,下面分情况说明:
一、让输出直接显示在当前窗口(不弹窗)
1. PowerShell / CMD 环境
- 如果你用的是PowerShell,别直接敲
./abc.sh,换成bash ./abc.sh执行(前提是你已经安装了Git Bash、WSL或者Cygwin这类支持bash的环境)。这样脚本会在当前窗口里运行,输出直接显示在命令行下方,不会新开窗口一闪而过。 - 要是用CMD窗口,同样用
bash abc.sh来运行脚本。另外,也可以给脚本加个“暂停”功能:在你的abc.sh最后加上一行read -p "看完按任意键关闭...",这是bash的原生命令,脚本执行完会等待你按键再退出,足够你看完输出。
2. PyCharm 配置调整
PyCharm默认运行脚本可能会弹出独立窗口,你可以改下运行配置让输出留在Terminal面板:
- 右键你的
abc.sh文件,点击「Run 'abc.sh'」旁边的小箭头,选择「Edit Configurations...」 - 在配置窗口的「Execution」区域,勾选「Run in terminal」选项
- 保存配置后再运行脚本,输出就会直接显示在PyCharm底部的Terminal里,和你平时输入命令的地方在一起,查看超方便。
二、把输出重定向到文本文件(永久保存)
这个方法不管哪个环境都通用,适合需要留存执行日志的场景:
- 只保存正常输出:执行命令时加上
./abc.sh > output.log,所有正常执行信息都会写入到当前目录的output.log文件里,之后直接打开文件就能查看。 - 同时保存正常输出和错误信息:用
./abc.sh > output.log 2>&1,这里的2>&1是把错误输出(比如脚本报错的内容)也一起写到日志文件里。或者用简写版./abc.sh &> output.log,效果完全一样。 - 边看边存:用
bash ./abc.sh | tee output.log,这样当前窗口会实时显示输出,同时也会把内容写入output.log,兼顾实时查看和永久保存的需求。
内容的提问来源于stack exchange,提问作者Blue Clouds
相关产品推荐
相关产品推荐

