我有三个变量 、x
、y
和z
,我想从 stdin 读取第一个、第三个和第六个单词(没有多大意义,但这只是一个例子),而 stdin 是
foo turtle bar dog bird baz qwer asdf
x
应该是foo
,y
应该是bar
,而且z
应该是baz
如何获取 stdin 的某些部分并将其读入变量?
答案1
将字符串读入数组,用数组元素指针声明 X、Y、Z 变量。
#! /bin/bash --posix
#STRING="foo turtle bar dog bird baz qwer asdf"
read -p "Input String: " STRING
IFS=' ' read -a arr <<< "$STRING"
X=${arr[0]}
Y=${arr[2]}
Z=${arr[5]}
printf "x is $X\ny is $Y\nz is $Z\n"
答案2
阅读第一至第六,使用您想要的任何一个:
read -p "Enter values: " one two three four five six