答案1
你的问题:
问题是它echo hello world
在几毫秒内执行,比终端窗口弹出的速度还快。
这意味着您的脚本在终端可见之前已经退出,因此其启动被取消并且您看不到任何内容。
解决方案 1-修改脚本并添加延迟:
您可以在脚本末尾添加延迟(此处为 5 秒),以便它运行更长时间,并且您有时间在脚本退出和终端窗口关闭之前查看结果:
#!/usr/bin/env bash
echo hello world
sleep 5
解决方案 2-修改脚本并等待按键:
您还可以read
在脚本末尾添加一个命令,以在脚本退出之前等待键盘输入。
该-s
参数会导致静默输入,即您按下的键不会回显到终端。
-n1
让它只读取一个字符并立即返回,而不是等待Enter按下。
该-p "Press any key to exit..."
参数实际上指定在等待输入之前要打印的文本。
#!/usr/bin/env bash
echo hello world
read -s -n1 -p "Press any key to exit..."
解决方案 3 - 更改gnome-terminal
偏好设置以保持窗口打开:
启动一个gnome-terminal
窗口,打开编辑菜单并选择个人资料偏好. 导航至命令选项卡。您将看到一个下拉菜单,标签为当命令退出时:
挑选保持终端打开此处并关闭设置窗口。
从现在开始,当您双击脚本并选择在终端中运行它时,窗口将不再自行关闭,而是保持打开状态并显示一个横幅,通知您有关脚本的退出状态:
警告!
如果您手动打开终端窗口并尝试通过使用命令exit
或Ctrl+退出 Bash 来关闭它,此设置也适用D- 我发现终端窗口不再关闭,这很烦人。