一般而言,A="a b c def" 这样的变量只是将 $A 替换为一个单一的字符串,
但是改为 A=(a b c def) ,则是将 $A 定义为组数…
bash 的组数替换方法可参考如下方法:
${A[@]} 或 ${A[*]} 可得到 a b c def (全部组数)
${A[0]} 可得到 a (第一个组数),${A[1]} 则为第二个组数…
${#A[@]} 或 ${#A[*]} 可得到 4 (全部组数数量)
${#A[0]} 可得到 1 (即第一个组数(a)的长度),${#A[3]} 可得到 3 (第四个组数(def)的长度)
A[3]=xyz 则是将第四个组数重新定义为 xyz …
${#var} 可计算出变量值的长度
参考:http://my.oschina.net/flylxl/blog/510960
--------------------------------------------------------------------------------------------------------------------------------
练习:
[root@izptec import_label_plat]# A="a b c def"
[root@izptec import_label_plat]# echo $A
a b c def
[root@izptec import_label_plat]# A=(a b c def)
[root@izptec import_label_plat]# echo $A
a
[root@izptec import_label_plat]# echo $A[0]
a[0]
[root@izptec import_label_plat]# echo ${A[0]}
a
[root@izptec import_label_plat]# echo $A[1]
a[1]
[root@izptec import_label_plat]# echo ${A[1]}
b
[root@izptec import_label_plat]# echo ${A[*]}
a b c def
[root@izptec import_label_plat]# echo ${A[@]}
a b c def
[root@izptec import_label_plat]# echo ${#A[*]}
4
--------------------------------------------------------------------------------------------------------------------------------
实例:
#!/bin/sh
mkdir -p /tmp/label;
FILE_ID=("91304457" "91304452" "91304453" "91304410");
FILE_NAME=("城区_中关村_工作" "城区_亚运村_休闲" "城区_亚运村_居住" "城区_马甸_休闲");
for ((i=0; i<${#FILE_ID[*]};i++));do
echo "cp data/t${FILE_ID[i]}.txt /tmp/label/${FILE_NAME[i]}.txt"
done;