Tôi không chắc chắn cách thực hiện if
với nhiều thử nghiệm trong trình bao. Tôi đang gặp rắc rối viết kịch bản này:Sử dụng nếu elif fi trong tập lệnh shell
echo "You have provided the following arguments $arg1 $arg2 $arg3"
if [ "$arg1" = "$arg2" && "$arg1" != "$arg3" ]
then
echo "Two of the provided args are equal."
exit 3
elif [ $arg1 = $arg2 && $arg1 = $arg3 ]
then
echo "All of the specified args are equal"
exit 0
else
echo "All of the specified args are different"
exit 4
fi
Vấn đề là tôi nhận được lỗi này mỗi khi:
./compare.sh: [: thiếu `]' command not found
Khá nhiều nhà bình luận đã đề xuất bạn sử dụng [[chứ không phải [nhưng điều đó làm cho tập lệnh của bạn trở nên cụ thể hơn. Bạn sẽ có ít vấn đề về bảo trì và tính di động hơn nếu bạn có thể dính vào cú pháp shell (sh) cũ của Bourne. –