我有一个 bash 脚本,它返回一个列表,这是我想要的,但我需要将结果放在一个变量中,以便我可以在 for 循环中一次对它们进行操作。
#!/bin/bash
processID="ps aux | grep `date +"%b"` | gawk '{print \$2}'"
eval $processID
如何将 eval 的结果分配给变量?谢谢
pid=$( ps aux | grep `date +"%b"` | awk '{print $2}' )
由于您已经在使用 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