10.Shell之数组,获取目录或文件,变量内容删除或替换

小破站学习笔记

数组分类

普通数组:只能使用整数作为数组索引(元素的下标)
关联数组:可以使用字符串作为数组索引(元素的下标)

  • 普通数组
#一次赋予一个值
数组名[索引下标]=值
array[0]=1
array[1]=2
array[2]=3

array[0]=zss
array[1]=ming
array[2]=shy

#一次赋予多个值
数组名=(元素1 元素2 元素3 ...)
names=(harry zss shy tom)
arr1=(`cat /etc/passwd`)
#一行就是一个元素
arr2=(harry zss shy "jack")
arr3=(1 2 3 4 "1234" [10]=linux)
#赋值的时候 可以直接定义第几个是多少
declare -a
#查看定义的普通数组
  • 关联数组
#首先声明关联数组
declare -A ar1
declare -A ar2
#数组赋值
#一次赋一个值
ar1[linux]=one
ar1[java]=two
#一次赋值多个
ar1=([garry]=hao [jack]=huai [zss]=666)
declare -A
#查看定义的关联数组
declare -A zss
#自定义一个新的关联数组
let zss[linux]++
#declare -A zss='([linux]="1" )'
let zss[java]++
#让元素做i++ 里面就存在了
#declare -A zss='([java]="1" [linux]="1" )'

数组的读取

${数组名[索引下标]}
echo ${arr1[0]}	获取数组里的第一个元素
echo ${arr1[*]}	获取数组里的所有元素
echo ${#arr1[*]}获取数组里所有元素个数
echo ${!arr1[@]}获取数组元素的索引下标
echo ${arr1[@]:1:2}	访问指定元素;1代表从下标1的元素开始获取;2代表获取后面几个元素

取出一个目录下的目录和文件

A=/zss/zss.txt
echo $A
dirname $A #取出目录
/zss
basename $A #取出文件
zss.txt

变量内容的删除和替换

一个"%"代表从右往左去掉一个/key/ (中间的关键字)
两个"%%"代表从右往左最大去掉/key/
一个"#"代表从左往右去掉一个/key/
两个"##"代表从左往右最大去掉/key/
url=www.baidu.com
echo ${#url} #获取变量字符串长度
13
echo ${url#*.} #从左往右去掉.前面的内容
baidu.com
echo ${url##*.}#从左往右去掉所有.前面的内容
com
echo ${url%%.*}#从右往左去掉所有.后面的内容
www
echo ${url%.*}#从右往左去掉.后面 的内容
www.baidu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值