首页 > 解决方案 > 在 bash 中将 if 语句压缩为一行

问题描述

我有以下脚本:

#!/usr/bin/bash
arch=`uname -p`
if [[ "$arch" == "x86_64" ]]
then
    echo "Yes"
else
    echo "No"
fi

有没有办法在命令提示符下将其写为简短的单行代码,$而不是将其作为脚本。就像是:

$ test uname -p == "x86_64" ? "Yes" : "No"

虽然我不确定 bash 中的三元用法(?)。

标签: bashshell

解决方案


您可以使用以下内容,&&如果语句评估为True,则该部分将运行,||否则将运行 run:

[ "`uname -p`" = "x86_64" ] && echo "Yes" ||  echo "No"

推荐阅读