我需要向 bash 中的函式發送多個引數。引數將是帶空格的變數或陣列
問題:
bad substitution嘗試在函式中呼叫我的輸入引數陣列時,我不斷得到。我也 bash 沒有正確處理第一個引數,只顯示到空格。如何將這兩種型別的引數傳遞給函式并在函式中正確使用它們?
這是我的代碼:
#!/bin/bash
arr_conf=()
output(){
echo $1
for i in "${2[@]}";do
echo $i
done
}
arr_conf=(
"a=1"
"b=2"
"c=3"
)
name="Mr. Test"
output $name "${arr_conf[@]}"
這是輸出:
$ ./test.sh
Mr.
./test.sh: line 7: ${$1[@]}: bad substitution
uj5u.com熱心網友回復:
雙引號變數。用于shift從位置引數中洗掉第一個引數。
#! /bin/bash
output(){
echo "$1"
shift
for i in "$@" ; do
echo "$i"
done
}
arr_conf=( "a=1" "b=2" "c=3" )
name="Mr. Test"
output "$name" "${arr_conf[@]}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414889.html
標籤:
上一篇:如何將陣列[]的地址存盤在變數中
