bash 的组数(array)处理方法

一般而言,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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值