number=3
var="mango pineapple watermelon"
var1=("echo $var | awk '{print $number}'")
echo $var1
上面的bash脚本不会将数字的值取为3.我需要在上面的代码中使用print语句之后的变量值。我在变量循环中得到变量数作为计数器值。我能实现这个吗?
答案 0 :(得分:3)
假设你有:
$ n=3
将shell变量传递给awk的典型方法是:
$ awk -v n="$n" 'BEGIN {print n}'
3
如果要将输出捕获到新变量:
$ n2=$(awk -v n="$n" 'BEGIN {print n}')
$ echo "$n2"
3
当你输入到awk的管道输入时,你不清楚你期待什么......
如果您尝试选择行输入的n
字:
$ var="mango pineapple watermelon"
$ echo "$var" | awk -v n="$n" '{print $n}'
watermelon
如果你想把它放进var2
:
$ var2=$(echo "$var" | awk -v n="$n" '{print $n}')
$ echo "$var2"
watermelon
答案 1 :(得分:1)
似乎没用,但这应该有用......
$ number=3
$ var="mango pineapple watermelon"
$ var1=$(echo "$var" | awk -v field="$number" '{print $field}')
$ echo "$var1"
你应该得到"西瓜"作为var1值。