Как сравнить несколько аргументов?
На вход передаются 3 аргумента: Ivanov Ivan 777. Хочу проверить - совпадают ли он с тем что внутри кода. Накатал скрипт. Сравнение некорректно отрабатывает
#!/bin/bash
checkData() {
if [["$1"=="Ivanov" && "$2"=="Ivan" && $3=="777" ]]; then
return 0
else
return 1
fi
}
if checkData $1 $2 $3 then
echo 'ok'
else
echo 'error'
fi
Ответы (1 шт):
Автор решения: Senior Pomidor
→ Ссылка
надо добавить пробелы до и после скобок и равенством. также не хватает ; после условии IF
#!/bin/bash
checkData() {
if [[ "$1"=="Ivanov" && "$2"=="Ivan" && $3=="777" ]]; then
return 0
else
return 1
fi
}
if checkData $1 $2 $3; then
echo 'ok'
else
echo 'error'
fi
➜ ./s.sh Ivanov Ivan 77
error
➜ ./s.sh Ivanov Ivan 777
ok