如何在bash脚本中将eval的结果赋给变量?

时间:2012-04-06 21:42:16

标签: bash variables eval

我有一个返回列表的bash脚本,这是我想要的,但是我需要将结果放在一个变量中,这样我就可以在for循环中逐个操作它们。

#!/bin/bash
processID="ps aux | grep `date +"%b"` | gawk '{print \$2}'"

eval $processID

如何将eval的结果分配给变量? 感谢

2 个答案:

答案 0 :(得分:2)

pid=$( ps aux | grep `date +"%b"` | awk '{print $2}' )

答案 1 :(得分:1)

由于您已经在使用awk,因此可以减少对grep的需求。 " $"不需要进行转义,因为扩展不会出现在单引号内。

pid=$(ps aux | awk -vdate=$(date +%b) '$0 ~ date { print $2 }')

如果您希望返回多个pid,请使用数组:

pids=($(ps aux | awk -vdate=$(date +%b) '$0 ~ date { print $2 }'))

for pid in "${pids[@]}"; do
   ...
done