如何在bash脚本中用gnome-terminal打开新终端并执行ls命令?
解决gnome-terminal打开新窗口执行命令的问题
我完全懂你现在的困扰——试了一堆参数组合,要么碰到-e选项过时的警告,要么直接弹出找不到命令的错误,翻旧帖子还都是过时的方案。别慌,咱们一步步来搞定这个问题:
正确的命令格式
现在gnome-terminal官方已经弃用了-e选项,推荐用--来分隔终端的选项和你要执行的命令。针对你的需求,正确的命令应该是:
gnome-terminal --window -- ls
如果要执行带参数的命令(比如查看详细列表),可以直接在命令后加参数:
gnome-terminal --window -- ls -l ~/Documents
为什么之前的尝试会出错?
咱们来拆解下你遇到的两个核心错误:
Failed to execute child process "ls":这个错误是因为系统没有正确识别ls是PATH里的命令,当你没加--分隔选项和命令时,gnome-terminal会把ls当成需要完整路径的可执行文件,自然找不到。Option "-e" is deprecated:确实,-e已经被官方标记为过时,虽然有些旧版本还能凑合用,但新版本会直接触发警告,而且后续会被移除,所以必须改用官方推荐的--方式。
写进bash脚本的示例
把正确的命令放进你的脚本里,完整的脚本应该是这样的:
#!/bin/bash # 打开新终端窗口并执行ls命令 gnome-terminal --window -- ls
保存后给脚本加执行权限:chmod +x your_script.sh,运行./your_script.sh就能看到新终端窗口弹出并执行ls了。
进阶:执行多个命令
如果想在新终端里执行一系列命令(比如ls之后显示提示,不让窗口立刻关闭),可以用bash -c包裹命令串:
gnome-terminal --window -- bash -c "ls; echo '命令执行完成'; read -p '按回车键关闭窗口'"
这样窗口执行完命令后会等待你按回车再关闭,方便查看输出。
内容的提问来源于stack exchange,提问作者Marcvs
相关产品推荐
相关产品推荐

