Предположим, у меня в bash есть следующее:
if [[ $cond1 = true ]]; then
[[ $cond2 = true ]] && echo hello world || echo goodbye cruel world
fi
Вторая строка, по сути, является сокращением для оператора if-else (если, конечно, не выходит из строя часть echo hello world
, в которой в случае echo goodbye cruel world
тоже произойдет).
Можно ли объединить все три эти строки в одну, используя сокращенную запись? В более общем плане, можно ли запустить блок команд как единое целое?
# <> and </> denotes some special syntax (tbd) for specifying a block of commands
[[ $cond1 = true ]] && <> [[ $cond2 = true ]] && echo hello world || echo goodbye cruel world </>
Я полагаю, я мог бы сделать что-то вроде
[[ $cond1 = true ]] && eval '[[ $cond2 = true ]] && echo hello world || echo goodbye cruel world'
Я просто не фанат eval
и необходимость избегать одинарных кавычек и т. Д.