Ubuntu:如何实现类似Win+R的单次交互自动关闭终端脚本?
解决Ubuntu下类似Win+R的单命令终端需求
你之前的脚本问题根源在于:bash -c启动的是非交互式shell,这类shell不会加载~/.bashrc/~/.bash_aliases,也不会启用readline自动补全功能。用下面的命令可以一次性解决两个问题:
gnome-terminal -- bash -i -c 'read -e -p "Run: " cmd && eval "$cmd"; exit'
参数说明:
-i:强制bash以交互式模式启动,自动加载~/.bashrc和~/.bash_aliases,同时启用readline全功能(包括Tab自动补全)read -e:开启readline编辑支持,输入命令时可通过Tab补全路径、命令名-p "Run: ":添加提示文本,贴近Win+R的使用体验eval "$cmd":正确解析执行带参数的命令、别名等复杂输入exit:命令执行完成后立即关闭终端,匹配Win+R的行为逻辑
可选调整:
如果需要执行命令后停留终端查看输出,把末尾的exit换成等待输入的命令即可:
gnome-terminal -- bash -i -c 'read -e -p "Run: " cmd && eval "$cmd"; read -p "Press Enter to exit..."'
内容的提问来源于stack exchange,提问作者Chayshew Drow
相关产品推荐
相关产品推荐

