shell 使用杂记
1前言
shell 脚本在工作中或多或少都会用到。有时候我们只是使用shell实现工作中的一个功能,并不需要全部学会shell的知识。这篇博客记录了我常用的shell功能,记录的目的是需要用的时候信手拈来。2 功能
2.1 shell 数组
数值型数组定义
使用一对括号表示定义数组,元素之间使用“空格”来隔开
numberArray=(1 2 3 4 5);
字符串类型数组
数组中的元素使用双引号或者单引号包含,元素之间使用“空格”来隔开。
stringArray=("aaa" "bb" "cc"); 或者 stringArray=('aa' 'bb' 'cc');
获取数组长度
arrLength=${#numberArray[*]}或${#numberArray[@]}均可,即形式:${#数组名[@/*]} 可得到数组的长度。
读取某个下标的值
arr_index2=${numberArray[2]},即形式:${数组名[下标]}
2.2 shell 循环
2.2.1 for
类似C/C++ 语音的for循环
for (( i=0; i<5 ; i++ )); do
echo $i
done
2.3 shell 循环读取目录文件
for file in ./tmpcert/*
do
if test -f $file
then
echo $file 是文件
fi
if test -d $file
then
echo $file 是目录
fi
done
2.4 shell 查看当前目录下文件的个数
2.4.1 查看当前目录下文件的个数
ls -l | grep "^-" | wc –l
2.4.2 查看当前目录下文件的个数(包括子目录)
ls -lR| grep "^-" | wc –l
2.4.3 查看某目录下文件夹(目录)的个数(包括子目录)
ls -lR| grep "^d" | wc -l
2.5 shell 整型变量自增(加1)的6种方法
以变量var为例
var=1
2.5.1方法1
var =$(($ var +1))
2.5.2方法2
var =$[$ var +1]
2.5.3 方法3
var =`expr $ var + 1`
2.6.4 方法4
let var ++
2.5.5 方法5
let var +=1
2.5.6 方法6
((var ++))
2.6 使用用例:
2.6.1 awk获取包含” BEGIN CERTIFICATE”的行号,并保存到数组lineArray中
line=`grep "BEGIN CERTIFICATE" -w chain.cer -n | awk -F':' '{print $1}'`
lineArray=($line)
2.6.2 sed截取文件的行并重定向到文件
begin=1 #起始
end=5 #结束
cmd="$begin,${end}p" #命令
sed -n $cmd chain.cer > tmpcert/1.txt #截取行并重定向
2.6.3 sed 使用在文本中替换字符或字符串
tmp测试文件中的内容如下 subject=/C=CN/ST=state/L=location/O=organization/OU=organizationUnit/CN=commonName/emailAddress=email 把':'替换成= sed -i "s/:/=/g" tmp 在文本中替换字符或字符串(使用正则表达式) 把'subject=/' 替换成空,其中'/'需要使用转义字符'\'来转义表示 sed -i "s/subject=\///g" tmp原文链接:https://www.f2er.com/bash/389474.html