@Taiserisa

Bash Script работает некорректно, почему?

Скрипт очень простой, переписан из книги для тренировки:
#!/bin/sh
#
# 
#
echo "script4 - Linux Scripting Book"

if [ $# -ne 4 ] ; then
    echo "Usage: script4 number1 number2 number3 number4"
    echo " Please enter 4 numbers."
exit 255
fi

echo Parameters: $1 $2 $3 $4

echo Showing logical AND
if [[ $1 -eq $2 && $3 -eq $4 ]] ; then       # logical AND
    echo Clause 1
else
    echo Clause 2
fi

echo Showing logical OR
if [[ $1 -eq $2 || $3 -eq $4 ]] ; then         # logical OR
    echo Clause 1
else
    echo Clause 2
fi
echo "End of script4"
exit 0


Если задать параметры 1 1 1 1, то должен по идее выдавать Clause 1 и Clause 1. А выдает вот что:
601fec5a60a2a837159661.jpeg

Ubuntu 20.04.1. на виртуальной машине. Скрипт из книги 2017 года. В чем может быть проблема?
  • Вопрос задан
  • 116 просмотров
Решения вопроса 2
xotkot
@xotkot
хорошо есть и хорошо весьма
сам скрипт рабочий
$ bash --version
GNU bash, версия 5.1.4(1)-release (x86_64-pc-linux-gnu)
...
$ ./untitled.sh 1 1 1 1
script4 - Linux Scripting Book
Parameters: 1 1 1 1
Showing logical AND
Clause 1
Showing logical OR
Clause 1
End of script4

возможно дело в кодировке или в чем то другом

п.с.
попробуй заменить в начале файла sh на bash
#!/bin/bash
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Bash Script работает некорректно, почему?
#!/bin/sh
В чем может быть проблема?

Потому что это не bash скрипт. bash скрипт начинается словами #!/bin/bash. Твой скрипт хочет чтобы его выполнял /bin/sh, а он не обязан быть башем.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы