我有while循環如下:while循環變量納入
while read LINE; do
VALUE="`echo $LINE | cut -d"|" -f1`";
done
通知的F1。這是我使用剪切的正常方式。這一次,我需要像這樣增加f1有點:
while read LINE; do
VALUE="`echo $LINE | cut -d"|" -f$COUNT`";
done
我找不出正確的語法。有人可以幫幫我嗎?謝謝!
* UPDATE *
這裏是我完整的代碼(如果這能幫助更多)
declare -a FIELDS
local i
for i in "${!DBARRAY[@]}"; do
local COUNT=1
while read LINE; do
VALUE="`echo $LINE | cut -d"|" -f$COUNT`";
FIELDS[$COUNT]="$VALUE"
Do stuff to each element of array here
let COUNT=COUNT+1
done < <(grep -v '#' databases/${DBARRAY[$i]})
done
* UPDATE *
好了,所以我才意識到我的邏輯是有缺陷的。第一個for循環是循環遍歷所有數據庫。 while循環是循環遍歷單個數據庫中的每一行。我需要第三個循環來將每個字段存儲到數組中。請參閱下面的更新代碼:
declare -a FIELDS
local i
local j
for i in "${!DBARRAY[@]}"; do
local COUNT=1
while read LINE; do
for ((j=1; j<=24; j++)); do
VALUE="`echo $LINE | cut -d"|" -f"$j"`";
FIELDS[$j]="$VALUE"
echo "${FIELDS[$j]}"
done
let COUNT=COUNT+1
done < <(grep -v '#' databases/${DBARRAY[$i]})
done
此代碼可以工作!