我碰到了这条线
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 将起作用并且将等待任何键。