我有一个返回列表的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 }')
pids=($(ps aux | awk -vdate=$(date +%b) '$0 ~ date { print $2 }'))
for pid in "${pids[@]}"; do
...
done
eval
几乎总是一个坏主意。你可能还想了解一下进程管理。 - l0b0