你当然可以做这种事
read var; if [[ $var = 'y' ]]; then echo "Yes"; fi
Run Code Online (Sandbox Code Playgroud)
但是有没有办法跳过第一步并做一些更像这样的事情(理想情况下不需要子shell):
if [[ $(read var) = 'y' ]]; then echo "Yes"; fi
Run Code Online (Sandbox Code Playgroud)
当然,除非您添加echo,否则上述内容不起作用,但我正在寻找比这更清洁和更简单的东西:
if [[ $(read var; echo "$var") = 'y' ]]; then echo "Yes"; fi
Run Code Online (Sandbox Code Playgroud)
如果这行得通,那将是理想的:
if [[ read = 'y' ]]; then echo "Yes"; fi
Run Code Online (Sandbox Code Playgroud)
小智 3
如何使用函数来完成您需要的事情:
user_input () {
read var
echo $var
}
if [ "$(user_input)" = 'y' ]; then echo "Yes"; fi
Run Code Online (Sandbox Code Playgroud)
在顶部,我定义了一个名为 user_input 的函数,它将读取值,然后将其回显。然后 if 语句能够获取该值并检查它是否为“y”。我将其$(user_input)用引号引起来,以防用户输入空格,这样脚本就不会出错。