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命令