Тернарные операторы возвращают значение на основе теста. Они не используются для разветвления.
Вот один из способов получить псевдотроичный оператор для bash (обратите внимание на обратные галочки):
$ result = `[
] && echo" true-result "|| echo "ложный результат" `
$ a =
$ c =` [$ a] && echo 1 || echo 0`
$ echo $ c
0
$ a = 5
$ c = `[$ a] && echo 1 || echo 0`
$ echo $ c
1