当脚本在新终端窗口中打开时,我可以让它等待按键吗?

当脚本在新终端窗口中打开时,我可以让它等待按键吗?

我碰到了这条线

if [ ! -t 0 ]; then x-terminal-emulator -e "$0"; exit 0; fi

我可以在脚本顶部写入它,当单击 nautilus 中的脚本文件时,脚本将在终端窗口中自动打开,以便我可以看到输出。

现在有一个问题,这个命令

read -n1 -r -p "Press any key to continue..." key

在这种情况下不会等待按键。

我猜测 x-terminal-emulator 可能是原因,但我还没有找到任何其他解决方案来双击 Nautilus 中的脚本文件并获得一个将运行该脚本的新终端窗口。

答案1

无法重现。此代码

#!/bin/bash
if [ ! -t 0 ]; then x-terminal-emulator -e "$0"; exit 0; fi
echo "new window"
read -n1 -r -p "Press any key to continue..." key
echo bye

运行时./foo.sh </dev/null会在新终端中打开并等待按键。

您需要更清楚地说明您的代码。

答案2

read -r -p "Press any key to continue..." key

等待回车键,无论是否使用了 #!/bin/bash。

什么时候

#!/bin/bash

位于脚本的顶部,-n1 将起作用并且将等待任何键。

相关内容