加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell 使用杂记(一)

发布时间:2020-12-15 09:13:04 所属栏目:安全 来源:网络整理
导读:shell 使用杂记 1前言 shell 脚本在工作中或多或少都会用到。有时候我们只是使用shell实现工作中的一个功能,并不需要全部学会shell的知识。这篇博客记录了我常用的shell功能,记录的目的是需要用的时候信手拈来。 2 功能 2.1 shell 数组 数值型数组定义 使
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读