shell编程小结

关于变量的几个问题


1、shell编程由于和命令行有莫大的关系,所以对空格等字符比较敏感。

2、定义变量 value=xx 而不能像 value = xx 这样出现空格。

3、通过 export value 可以将value变成环境变量,使其子进程也可以使用该变量。

4、环境变量多为大写,普通变量为小写

5、一般通过 value = $(shell 命令) 将输出结果赋值给value

6、$#代表参数个数,$1,$2,......代表对应第几个参数


常用的逻辑:

条件

-e 文件是否存在

-f 是否存在且为文件

-d 是否存在且为目录      


-eq 是否相等

-nq 是否不等

-gt 是否大于

-lt 是否小于


判断:

if [ "条件1" -o "条件2" ];then                   if [ "条件1" ] || [ "条件2" ];then

命令;                             =                命令;

fi                                               fi


case $1 in

"条件1" )

命令段1

;;

"条件2" )

命令段2

;;

* )

命令段3

;;

esac


循环

while [ "循环条件" ]

do

命令段;

done


for value in xxx1 xxx2 xxx3

do

命令段;

done


for ( ( i=0 ; i<10; i++ ) )

do

命令段;

done


正则表达式:

't[^a-z]st' : 第二个字母不是a-z的对象 (^取反符,a-z为选取对象)

'go\{2,5\}g': 限定o的重复次数为2到5个。

^ : 放在括符外面为行首符。

$ :为行尾符。

. : 有个任意字符。

* : 重复前一个 0到无数次



常用工具

cut -d '分隔符' -f 区域   获取分割过后的某块区域

cut -c 2-12 获取每行2到12之间字符

grep -n  查找字符串

sort 排序工具

wc 显示字符数和行数


sedawk





你可能感兴趣的:(shell)