Условный (троичный) оператор является единственным оператором JavaScript, который принимает три операнда. Этот оператор часто используется в качестве ярлыка для оператора if.
condition ? expr1 : expr2
Если условие истинно, оператор возвращает значение expr1; в противном случае он возвращает значение expr2.
function fact(n) { if (n > 1) { return n * fact(n-1); } else { return 1; } // we can replace the above code in a single line of code as below //return (n != 1) ? n * fact(n - 1) : 1; } console.log(fact(5));
Дополнительную информацию см. В Ссылка на документ MDN
.
Пробелы имеют большое значение в сценариях Whell, вы должны позаботиться о них. Между именем переменной и знаком =
и его значением нет пробела.
Перепишите свой сценарий оболочки следующим образом:
#!/bin/bash
ageLimit=34
echo "What is your name?"
read userName
echo "How old are you?"
read userAge
if [[ "$userAge" -le "$ageLimit" ]]; then
echo "Hey, $userName. At $userAge years old, you are young."
else
echo "Gosh, $userName. At $userAge years old, you're pretty old."
fi
Обратитесь к хорошему руководству по написанию сценариев оболочки, пока вы пачкаете руки. Один хороший урок по поиску в Google:
Вы также можете хочу знать это:
Если вы пытаетесь вычислить две строки, тогда используйте -le -ge, если вы хотите оценить число, я предлагаю вам использовать обычный оператор> < = это общее соглашение и хорошие войны. поэтому в этом случае используйте
if ["$ userAge" -le "$ ageLimit"]; тогда еще фи
Я вижу две незначительные ошибки в вашем коде.
[1] Не используйте пробел при объявлении переменной, делайте так
ageLimit=34
[2] Есть два способа задания if
условий, используйте любой из них.
if [ "$userAge" -le "$ageLimit" ]; then
или
if (( "$userAge" <= "$ageLimit" )); then