在终端运行不起作用

在终端运行不起作用

我是 Ubuntu 新手,我试图运行这个脚本:

#!/usr/bin/env bash
echo hello world

如果我先打开终端并手动调用它,它就可以正常工作。就像./test
我在文件首选项中设置了“每次询问”: 在此处输入图片描述

这也很好用: 在此处输入图片描述

现在我点击终端中的运行。瞧!没有什么发生了。
我希望它打开终端并回显 hello world。我做错了什么?这是从 ubuntu 网站全新安装的 ubuntu 以及 windows。

答案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窗口,打开编辑菜单并选择个人资料偏好. 导航至命令选项卡。您将看到一个下拉菜单,标签为当命令退出时:

在此处输入图片描述

挑选保持终端打开此处并关闭设置窗口。

从现在开始,当您双击脚本并选择在终端中运行它时,窗口将不再自行关闭,而是保持打开状态并显示一个横幅,通知您有关脚本的退出状态:

在此处输入图片描述

警告!
如果您手动打开终端窗口并尝试通过使用命令exitCtrl+退出 Bash 来关闭它,此设置也适用D- 我发现终端窗口不再关闭,这很烦人。

相关内容