Bash/Linux中如何将多行输入分别赋值给变量?
如何用read命令将多行输入分别赋值给变量?
假设在Bash/Linux环境下有如下输入:
2 3 5需要将这三行内容分别赋值给num1、num2、num3,已知要用到read命令,该如何实现?
方法1:逐行调用read命令
直接对每个变量单独调用read,每次读取一行输入:
read num1 read num2 read num3
执行后,num1会被赋值为2,num2为3,num3为5,逻辑清晰,适合输入明确为三行的场景。
方法2:单次read分配多个变量
Bash的read命令支持一次性指定多个变量,默认会以换行(或空格)作为分隔符,将输入内容依次分配给变量:
read num1 num2 num3
注意:如果输入行数多于变量数,多余的内容会被全部存入最后一个变量;如果行数不足,未被赋值的变量会设为空值。
方法3:结合here-document批量赋值
如果是在脚本中使用固定的多行输入,可以用here-document配合read一次性完成赋值:
read num1 num2 num3 <<EOF 2 3 5 EOF
这种写法适合把输入内容直接嵌入脚本,无需外部输入流。
内容的提问来源于stack exchange,提问作者fantahwa
相关产品推荐
相关产品推荐

