リストを返す bash スクリプトがありますが、これが必要ですが、for ループで一度に 1 つずつ操作できるように、結果を変数に入れる必要があります。
#!/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