我有一个返回列表的bash脚本,这是我想要的,但是我需要将结果放在一个变量中,这样我就可以在for循环中逐个操作它们。
#!/bin/bash
processID="ps aux | grep `date +"%b"` | gawk '{print \$2}'"
eval $processID
如何将eval的结果分配给变量? 感谢
答案 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