bash 中的命令中是否可以使用条件语句?

Can a conditional statement be used inside a command in bash?

是否可以在打印命令中插入条件语句,例如带有 bash 的 echo?

例如(不起作用)

$ cat t.sh
#!/bin/bash

string1="It's a "
string2opt1="beautiful"
string2opt2="gross"
string3=" day."

read c

echo -n "$string1 $( [[ $c -eq 0 ]] && { echo -n "$string2opt1" } || { echo "$string2opt2" } ) $string3"

我知道 semicolons/non-one-liners 可以做到这一点;我只是想知道是否有更优雅或更可接受的方式来做到这一点。

澄清一下,你想达到这个目的:

#!/bin/bash

string1="It's a"
string2opt1="beautiful"
string2opt2="gross"
string3="day."

read -r c

if [[ $c -eq 0 ]]; then
  echo "$string1" "$string2opt1" "$string3"
else
  echo "$string1" "$string2opt2" "$string3"
fi

但是单行。这对你有用吗?

#!/bin/bash

string1="It's a"
string2opt1="beautiful"
string2opt2="gross"
string3="day."

read -r c

echo "$string1" "$([[ $c -eq 0 ]] && echo "$string2opt1" || echo "$string2opt2")" "$string3"