2 つの配列を定義したスクリプトがあります。(パラメータとして)渡された配列名に応じて、以下の関数で同じものを処理したいと思います。以前は、使用するまで、変数「ARRAY」に要素を取得することすらできませんでした${!}
問題は、配列の内容 (またはその配列内の要素の数) を印刷しているときに、最初の要素のみを取得していることです。
助言がありますか?
脚本:
#!/bin/bash
APP=$1
process_data() {
ARRAY="${!1}"
echo "No of array elements: ${#ARRAY[@]}"
echo "Array content: ${ARRAY[@]}"
}
ORADATA=(
"oraserver/content:abcDaily/ORAServer/"
"oraserver/w3s-ix86:abcDaily/ORAServer/"
)
SQLDATA=(
"sqlserver/content:abcDaily/SQLServer/"
"sqlserver/w3s-ix86:abcDaily/SQLServer/"
)
process_data ${APP[@]}
指示:
-bash-2.05b$ ./testarray.sh ORADATA
出力:
No of array elements: 1
Array content: oraserver/content:abcDaily/ORAServer/