Intereting Posts
Недостающие / сломанные зависимости на OpenSUSE, нормально? Документация Debian Cinnamon vs Mint Cinnamon Как вы обновляете репозитории диспетчера пакетов YUM? Arch Linux makepkg не удалось сжать пакет Совместное использование unix-сокетов в непривилегированных lxконтейнерах Могу ли я установить рабочую среду Deepin в Debian? Есть ли способ заставить libusb вести себя в режиме реального времени? Причина задания SIGTERM в случае закрытия оболочки Основной вопрос: Почему linux-образ не соответствует установленной версии? Невозможно использовать bonnie ++ для измерения производительности ввода / вывода Отображать только соответствующие фрагменты diff / patch на основе регулярного выражения nmap -sn перечисляет все активные хосты в моей сети, но nmap -sL не делает iptables: использует ли -m conntrack увеличение загрузки системы? Отключение sslv3 на samba4 как заставить Expect ждать завершения другого скрипта

Вывести результат печати непосредственно в bash без использования if

Предположим, у меня есть этот простой код:

echo "Are there any arguments?" if [ $# -eq 0 ]; then echo "false" else echo "true" fi 

Как вы можете видеть, было бы лучше иметь возможность напрямую распечатать результат условия, но я не знаю, как это сделать.

Это было бы что-то вроде:

echo "$([ $# -eq 0 ])"

Но это не работает. Можем ли мы это сделать, if ?

Вы можете использовать операторы управления списками && и || вместо:

 [[ $# -eq 0 ]] && { echo false; } || { echo true; } 

Группа { } группирует список команд, они вам не нужны только для одной команды, но они часто делают такие конструкции более читабельными.

Вы можете использовать $? который сохраняет код выхода последней выполненной команды:

 echo "Are there any arguments?" [ $# -eq 0 ] echo $?