0
303 for count in "${nodeof[@]}"; do
304 lines=`GetNodeMemory $count`
305 printf %s "$lines" | while IFS= read -r line; do \
306 {
307 key=`echo $line | awk -F':' '{print $1}' | cut -d' ' -f3`
308 [[ -z ${key} && ${key} ]] && continue
309 for chk in "${MemVar[@]}"; do
310 [[ "${key}" == "${chk#*:}" ]] && break
311 done
312 #echo "ke:${chk#*:} - ind:${chk%%:*}"
313 NodeMem[$count,${chk%%:*}]=`echo $line \
314 | /bin/grep -i "${key}" | awk -F':' '{print $2}' \
315 | cut -d' ' -f2`
316 #echo "${chk#*:} ${NodeMem[$count,${chk%%:*}]}"
317 chk=""
318 } done
319 done
320
321 for count in "${nodeof[@]}"; do
322 for chk in "${MemVar[@]}"; do
323 echo "${NodeMem[${count},${chk%%:*}]}"
324 done
325 done
ここでNodeMemは2次元配列で、#316行目を使用して印刷すると、配列値は正常に印刷されます。しかし、行番号323を使用して印刷すると、出力は空行に過ぎません。ここで何が起きてるの?助けてくれてありがとう。Bash 2次元配列は永続的ではない
まず、あなたはコメントを使用する方法を学習を開始する必要がある上、この前の記事を参照してください。 – SaintHax
ありがとう@ user000001、私はパイプラインを見落とし、パイプラインのメカニズムを一時ファイルの書き込み/読み取りに置き換えました。残念ながら、現在のOSのbashは4.0です。私は最後のパイプオプションを使用できません。問題が解決しました。 – Userdijkstra