有没有一种简洁的方法可以有条件地设置将要分配给read的变量?

时间:2020-10-13 13:04:41

标签: bash

有没有一种方法可以提示用户并在同一行上进行读取,但是将要读取的变量设置为条件变量?

类似这样的东西:

read -p "Enter input: " [ if some condition=true varA else varB ]

read的手册页似乎并不暗示这是可能的。

2 个答案:

答案 0 :(得分:1)

只需输出字符串...

read -p "Enter input: " "$(if some condition=true; then echo varA; else echo varB; fi)"

答案 1 :(得分:1)

我不会尝试一行执行此操作。

if ...; then
    var=varA
else
    var=varB
fi

read -p "Enter input" "$var"

read的参数是变量的 name ,因此您可以在调用read时将该名称存储在另一个变量中,以进行扩展。

或者,只需将输入读入固定变量,然后然后将其值分配给正确的变量。

read -p "Enter input" response

if ...; then
    varA=$response
else
    varB=$response
fi