while [ $done = 0 ]
do
echo -n "Would you like to create one? [y/n]: "
read answer
if [ "$(answer)" == "y" ] || [ "$(answer)" == "Y" ]; then
mkdir ./fsm_$newVersion/trace
echo "Created trace folder in build $newVersion"
$done=1
elif [ "$(answer)" == "n" ] || [ "$(answer)" == "N" ]; then
$done=2
else
echo "Not a valid answer"
fi
done
Хорошо, поэтому у меня есть этот простой bashscript, который просто пытается получить вход от пользователя и проверить его. Однако я получаю эту ошибкуBASH: чтение во время цикла
./test.sh: line 1: answer: command not found
./test.sh: line 1: answer: command not found
./test.sh: line 1: answer: command not found
./test.sh: line 1: answer: command not found
Что я понятия не имею, почему, потому что «ответ» нигде вблизи линии 1. Так я столкнулся с этой article
Который имеет смысл, так как он имеет в виду линию 1 и может Не находите ответа. Поэтому, похоже, начинается новая подоболочка. Однако я действительно не понял решения и не могу понять, как я применил бы его к моему делу. Я просто хочу, чтобы это сработало.
Ahh спасибо! Я боролся с этим в течение часа. Это первый случай, когда я попытался написать сценарий bash (или любой скрипт). – Albinoswordfish
Рад помочь. Я немного расширил ответ, у вас были другие ошибки. – zwol
О, также, причина, по которой он говорит «строка 1», заключается в том, что «ответ» находится в строке 1 * вложенного сценария оболочки, вызванного '$ (...)' *. Да, это менее полезно, на самом деле, возможно, ошибка в оболочке. – zwol