Вам нужны пробелы вокруг оператора =
.
if [ "$ANSWER" = "N" ]
Когда мне нужно сопоставление текста, я предпочитаю использовать case
вместо test
или [...]
, потому что он более гибкий и эффективный.
FILE=~/myFile
if [ -f "$FILE" ]
then
echo "The file exists!"
else
echo -n "The file does not exist. Would you like to create it? (Y/N) "
read ANSWER
shopt -s nocasematch
case "$ANSWER" in
n|no)
echo "Whatever you say!"
;;
*)
touch "$FILE"
echo "The file has been created!"
;;
esac
shopt -u nocasematch
fi
У меня была такая же проблема с Windows 10,решил это, открыв диспетчер брандмауэра Windows (wf.wsc )и добавив запись, разрешающую неработоспособность