簡體   English   中英

Bash腳本:在for循環內填充一個數組

[英]Bash scripting: filling up an Array inside a for loop

我嘗試創建一個充滿一些值的數組。 但是我不知道該怎么做。 我在下面嘗試了一些方法,但是沒有用。

我的代碼:

i=0
for c in colors; do
array[$i]=$c
echo {$c[$i]}
i=`expr $i + 1`
done

注意: “ colors”是某種“ ps -ef”命令,它返回值列表。 例如,它具有“藍色,紅色,黃色”值。

colors= 'ps -ef | grep colors'

如果您的顏色是一對一行的,那么一旦擴展了存儲未加引號的變量,您就可能丟失信息(刪除空格和換行符之間的區別,擴展全局字符等)。

不要那樣做 相反,請遵循BashFAQ#1

colors=()
while IFS='' read -r color; do
    colors+=( "$color" )
done < <(get-color-list)

如果您只想在每一行中指定特定的列,那就更是如此。 read將為您完成列拆分,使其更易於分配。

您可以使用此腳本在循環中填充數組:

array=()
for c in $colors; do
    array+=( "$c" )
done

或更簡單:

array=( $(command) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM