Я столкнулся с этой строкой
if [ ! -t 0 ]; then x-terminal-emulator -e "$0"; exit 0; fi
который я могу записать наверху сценария и при нажатии на файл сценария в наутилусе, сценарий откроет себя в окне терминала так, чтобы я видел вывод.
Теперь существует проблема что эта команда
read -n1 -r -p "Press any key to continue..." key
в этом случае не будет ожидать нажатия клавиши.
Мое предположение - то, что x-эмулятор-терминала может быть причиной, но я не нашел никакое другое решение дважды щелкнуть по файлу сценария в Наутилусе и получить новое окно терминала, куда сценарий будет работать.
Не может воспроизвести. Этот код
#!/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
открывается в новом терминале и ожидает нажатия клавиши.
Необходимо будет быть более явными о коде.
read -r -p "Press any key to continue..." key
ожидает клавиши Return, неважно, если #!/bin/bash использовался или нет.
Когда
#!/bin/bash
наверху сценария,-n1 будет работать и будет ожидать любого ключа.