Mój kod:[: Nieoczekiwany operator w programowaniu powłoki
#!/bin/sh
#filename:choose.sh
read choose
[ "$choose" == "y" -o "$choose" == "Y" ] && echo "Yes" && exit 0
[ "$choose" == "n" -o "$choose" == "N" ] && echo "No" && exit 0
echo "Wrong Input" && exit 0
Ale kiedy wykonać
sh ./choose.sh
Terminal zapyta mnie, że
[: 4: n: :Unexpected operator
[: 5: n: :Unexpected operator
Czy jest jakiś błąd w moim skrypcie bash ? Dzięki!
Kiedy zrobiłem ten sam kod w Linuksie iw cygwin nie miałem żadnych błędów – Raghuram
Cygwin najprawdopodobniej użył aliasu 'sh' na' bash'. Niektóre dystrybucje nie oferują już prawdziwego 'sh'. Chociaż niektórzy będą się spierać (i mam tendencję do wyrażenia zgody), że jeśli piszesz skrypt, który ma być przenośny, zapisz go w 'sh' zamiast' bash'. – Wolph
Mój problem polegał na tym, że potrzebowałem 'source foobar.sh' not'./Foobar.sh' – jsta