コマンドの出力を読み取り、スクリプトで後で使用するためにそれらを配列して保存する必要があります。私のスクリプトは次のとおりです。
let i=0
declare -a array
$PS -ef|$GREP -v grep|$GREP $NAME | $SED -n 's/.*-q\s\([0-9]\+\).*/\1/p' | while read line; do
array[$i]=$line
echo ${array[$i]}
(( i++ ))
echo ${#array[@]}
done < <($PS -ef|$GREP -v grep|$GREP $NAME | $SED -n 's/.*-q\s\([0-9]\+\).*/\1/p')
echo ${#array[@]}
したがって、ループが終了すると、サブシェルのために配列のサイズが0になります。これを修正する方法はありますか?