sed搜索文件中数组变量并赋值给现变量

shell刚入门

需求: 需要从一个文件中读取一个变量值,并赋值给现有变量使用。首先想到用grep,搜索到返回,然而事与愿违,变量值是数组,需要遍历,然而返回的是一个整字符串,

即使通过截取,还是出现了““string””的样式, 这个是数组元素正是我要遍历的目录,始终提示找不到目录。 然后使用 grep &a的方式,可是变量使用多次,返回的无法使用。


最后只能通过比较繁琐的办法了,首先使用sed返回变量值:


 # search file name "xxx.sh"
String=`sed -n '/Folders=/'p  xxx.sh  | sed 's/^"//g' | sed 's/\"//g' | sed 's/Folders=//'`

注:sed 's/^"//g' | sed 's/\"//g' 用于除去首位双引号

得到的值是 echo $String 样式为:(hello word  shell)

此刻的“()”已经失去了数组的作用,是个字符串,所以是要删除再自己加上:

StringLen=${#String}
AppFolders=( ${String:1:$AppStringLen-2} )

此时 AppFolders即转化为原本的目录集合了,里面可以遍历,执行cd命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值