Рейтинг:-3

Использование конструкции «условие ?:»

флаг jp

Я использую следующую конструкцию и не могу понять, почему она вызывает синтаксическую ошибку.

(( г == 1 )) ? вернуть 0 : вернуть 1

Что такое конструкция условие ? : точно называется?

muru avatar
флаг us
Обычно его называют [тернарным оператором](https://en.wikipedia.org/wiki/%3F:). Что заставляет вас думать, что вы можете использовать его в bash напрямую?
флаг jp
Не нашел примеров его использования, поэтому начал баловаться.
Рейтинг:1
флаг mx

В bash синтаксис выглядит следующим образом:

$эхо $((0 ? 5 : 6 ))
6
$эхо $((1 ? 5 : 6 ))
5
флаг jp
Таким образом, конструкция предназначена просто для числового присвоения `a=$(( r==1 ? 5 : 8 ))`, а не для вызова общих команд, как это может быть сделано с помощью условного оператора `if`, `case` или `while` заявления.
флаг au
Синтаксис оболочки @Fatipati чрезвычайно зависит от контекста, и тернарный оператор не является исключением. Он доступен только в арифметических контекстах, таких как `(( ))`, `$(( ))`, индекс (неассоциативного) массива или в некоторых других местах.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.