Итак, у меня есть этот скрипт, я хочу, чтобы скрипт проверял второе условие, если «if» - false, то есть в elif для проверки его true.Если это не ложь, из которой он продолжает и проверяет следующего элифа.В основном несколько «else».
#Basically It turns a argument into a variable. Because that can't
#work in an if function.
#What the script is doing is its setting variables for the python script
#What vvTHISvv does is it turns the argument into a variable.
if [[ "$1" != "" ]]; then
VAR="$1"
else
VAR=.
fi
if [[ "$2" != "" ]]; then
VAR2="$2"
else
VAR2=.
fi
if [[ "$3" != "" ]]; then
VAR3="$3"
else
VAR3=.
fi
if [[ ${2} = ${VAR2} ]]
#${2} = ${2}
then
echo "I am condition number 1"
#outputs a number
./script.py "${VAR}" "`cat ${VAR2}` `echo ${VAR3}`"
elif [[ ${3} = "${VAR3}" ]]
#${3} = ${3}
then
echo "I am condition number 2"
#outputs a number
./script.py "${VAR}" "`echo ${VAR2}` `cat ${VAR3}`"
elif [[ ${2} = "${VAR2}" ]] || [[ ${3} = "${VAR3}" ]]
then
echo "I am condition number 3"
#outputs a number
./script.py "${VAR}" "`cat ${VAR2}` `cat ${VAR3}`"
else
echo "I am condition number 4"
#outputs a number
./script.py "${VAR}" "${VAR2} ${VAR3}"
fi
Если я бегу по первому условию, оно работает
I am condition number 1
#*Insert whatever that python script did. Lets say it outputs "2"
Однако, если я тестирую по условию № 2
I am condition number 1
#*insert a bunch of errors
#related to the fact that its rolling based on the first "if"
Это не работает и просто бросается на условие номер 1.
Если бы было только два условия, я бы просто поставил «если» и «еще», но как вы это сделаете с четырьмяусловия.
В любом случае VAR и $ {1} - это одно и то же, причина, по которой переменная состоит в том, что условие и аргумент в ./script.py - это одно и то же.И вы не можете точно установить эти два равными друг другу в качестве условия в операторе IF.