這里是代碼。我想宣告一個有n 1個元素的陣列,這些值應該是零。在下面的代碼中,我有一個簡單的陣列。誰能告訴我怎樣才能宣告一個有n 1個元素的陣列?
declare -a arr
for ( ( j=0;j<=n;j ))
do
arr =(0)
done
uj5u.com熱心網友回復:
可能有點矯枉過正,但用一個輔助函式來列印一個給定值的X個副本......
#!/usr/bin/env bash
rep(){
local count="$1"/span> val="$2"/span> n
for (( n = 0; n < count; n )); do
printf "%q
" "$val"
done。
}
n=10
declare -a arr="( $( rep $( ( ( n 1 )) 0))"
declare -p arr # arr有11個元素,都是0。
uj5u.com熱心網友回復:
我怎樣才能宣告一個有n 1個元素的陣列?
要宣告一個任何元素的陣列,也包括n 1元素,只需像arr=( <n 1 things> )這樣分配給陣列。
你可以列印n 1個零,并將它們賦值給陣列:
arr=($(printf "0%.s" $(seq $( (n 1)))))
uj5u.com熱心網友回復:
如果你能遵循這個技巧,可以不通過回圈來完成:
# setting n
n=5
#從空格分隔的欄位中讀取陣列
#由printf命令生成。
# 在下面的子殼中。
讀 -r -a array < <(
# print format n 1 spaces into variable str
printf -v str '%*s' $((n 1) ''
# 用0和空格替換str中的每個空格。
# line: 0 0 0 0 0 ...
printf %s "${str//0 }"
)
# Debug dump array declaration
declare -p array
除錯輸出:
declare -a array=([0]="0"/span> [1]="0" [2]="0" [3]="0" [4]="0" [5]="0")
上面的腳本可以裝入陣列的單行宣告中:
read -ra array < <(printf -v e %*s $( (n 1) '';printf %s "${e//0 }" )
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/324957.html
標籤:
上一篇:從csv檔案創建頁面
