shell 使用杂记(一)

来源:互联网 发布:香港域名注册不备案 编辑:程序博客网 时间:2024/05/29 12:25
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



原创粉丝点击