分红送股,jeep兄弟连论坛,杭州三墩镇大火
数组就是一段连续的变量,一段连续的内存存储空间,为了解决变量过多的问题,在同一类变量中,我们不需要去定义多个名字,而是以数组的方式来定义
declare -a 定义数组 declare -a 定义嵌套的数组 --- 这个在bash中并不常用 testname=(value) 也可以定义一个空数组
shell中是可以跳跃赋值的
testname=( )
a) testname[0]=1 ----索引一般从0开始,但索引并不一定是数字;
b) testname=(/var/log/*.log) 把/var/log下以.log结尾的放入数组
c) testname=(“qq=123” “vx=456”…)
d) 通过read命令赋值:read -a 输入数组所需的变量值
read -a x y z …
${变量名}
${数组名[索引]} 定义的是哪个索引,就看到是对应索引指定的值
${数组名} 默认调用索引=0的值
${数组名[*]} 或者 ${数组名[@]} 调用数组内所有的值
a=(/var/log/*.log) declare -i sum=0 for i in `seq 0 7`;do if [ $[$i%2] -eq 0];then line=wc -l ${a[$i]} |cut -d’ ‘ -f1 sum += $line fi done echo $sum
${#变量名[*]} 或者 ${#变量名[@]}
${变量名[${#变量名[@]}]}=”值” 或 ${变量名[${#变量名[*]}]}=”值”
${变量名[@]:偏移量:取值个数} ${a[*]:2:4} 不加取值个数就是取到最后
unset ${变量名[索引]} 删除的是该索引数的值,其他值索引不变
覆盖就是修改
printf "%-5s %-5s %-5s" no name height printf "%-5s %-5s %-5d" 1 zhangsan 167 printf "%-5s %-5s %-5.1f" 1 zhangsan 170.5 %-5d 左对齐
${变量名:偏移量:数值个数} a=abcdefg ${a:2:4} ===cdef ${变量名: -数值个数} 从后往前取 冒号后面一定要有空格 ${变量名:-word} 默认赋值,如果变量没有赋值,就使用默认值
${变量名#patten} a=abcdabcababcd ${a#a*c}===adabcd 从开头匹配删除最短匹配的子串 ${变量名##pattern} a=abcdabcababcd ${a##a*c}===d 从开头匹配删除最长匹配的子串 ${变量名%pattern} a=abcdabcababc ${a%a*c}===abcdabc 从结尾匹配删除最短匹配的子串 ${变量名%%pattern} a=abcdabcababc ${a%a*c}===空 从结尾匹配删除最长匹配的子串
${变量名/pattern/替换的字符串} 匹配第一个pattern进行替换 a=192.168.1.1 ${a/192/72}=72.168.1.1 ${变量名//pattern/替换的字符串} 匹配所有pattern进行替换 ${变量名/#pattern/替换的字符串} pattern必须出现在行首,不然不替换 ${变量名/%pattern/替换的字符串} pattern必须出现在结尾,不然不替换 注意:/分隔符不能换成(# % 等特殊字符)
${变量名/pattern} ${变量名//pattern} ${变量名/#pattern} ${变量名/%pattern}
tr [:lower:] [:upper:] < filename 小写转大写 ${变量名^^} 把小写转换为小写 ${变量名,,} 把大写转换为小写
变量名1=${变量名2:-word} 当变量2没有值时,赋予变量1默认word值 变量名1=${变量名2:+word} 当变量2有值时,赋予变量1默认word值 ${变量名:=word} 变量没有值的时用word默认值,有值则用原来的值 变量名1=${变量名2:?error_info} 变量2没有值时,输出error_info
vim /root/filename1 a=1 b=2 :wq vim /root/filename2.sh ./root/filename1 #导入filename1文件 c=$[$a+$b] echo $c :wq
mktemp:创建临时文件以及目录,避免取的文件名重复 格式:mktemp 名字.xxxx xx代表随机数(字母和数字) 默认创建的是文件 -d 创建名字随机的目录 例如:file=`mktemp a.xxx` dir=`mktemp -d b.xxx`
install:复制或删除文件,用法和copy相同 优点是可以指定权限来复制文件 用法: install [option] 文件 目录 复制时恢复初始权限 install [option] 目录 文件 参数: -t 源目对换 -d 创建 -m mode 设置权限 mask -o owner 指定所属主 -g group 指定所属组
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
网友评论