Я писал несколько сценариев bash, и по какой-то причине работающий код больше не работает. Я не внес никаких изменений, но while true; do
теперь разбивает мой скрипт bash.Хотя true Breaking Bash
Вот его часть. Catting README.txt работает безупречно. Терминал эхо «Test ...» правильно, но как только он нажимает «while true», он закрывается, независимо от $ exec bash, который удерживает его открытым после завершения.
#!/bin/bash
cat README.txt
echo
echo
sleep 2
echo
echo
echo "Test..."
sleep 3
#The option to read the README.txt file above
while true; do
read -p "Now is your chance to go back and read.
Or press y/n to continue." yn
case $yn in
[Yy]*) break;;
[Nn]*) break;;
*) echo "Please answer yes or no.";;
esac
done
$exec bash
Любая помощь будет принята с благодарностью, поскольку я начинаю думать, что это может быть больше, чем ошибка кода.
UPDATE
После запуска сценария с помощью «Баш -x 111.sh», сообщение об ошибке я получаю это
+ echo Test...
Test...
+ sleep 3
111.sh: line 59: syntax error near unexpected token `)'
111.sh: line 59: ` [Yy]* ) break;;'
Как есть неожиданный маркер или синтаксической ошибки, когда многие другие источники говорят, что это на самом деле правильно, а также работает до сегодняшнего дня.
Прекрасно работает для меня. –
Что в $ exec? – choroba
А? Что именно вы ожидаете от '$ exec bash'? –