变量、函数的定义与引用,其表达方法很多,我选下面这种:
变量名=`命定` #变量定义
$变量名 #变量的引用
函数名()
{
命定1;
命定2;
.....
} #函数的定义
函数名 #函数的引用
例如我第一篇博文里的
user_add()
{
id smbmin &>/dev/null; #smbmin是已经存在的用户
while (($?==0))
do
read -p "please input user name:" user_name;
id $user_name &>/dev/null;
done
useradd $user_name -g smbkefu -s /sbin/nologing;
smbpasswd -a $user_name;
echo "$user_name is ok!"
} #定义user_add函数
user_add #引用user_add函数
2.脚本中常用命定
sort 主要用来排序,它选项很多,我只列常用的
-n:按数字排序
-r:反向排序
-u: 只显示不重复的
还有一个就是按某列进行排序
sort -t ‘分隔符‘ -k ‘列号‘
uniq 主要用来去重和统计重复的行
-i:忽略大小写
-c:统计不同行的重复次数
-u:只显示唯一的行
awk以一行一行的处理文件,主要用来截取文件的某段信息
基本表达式为:awk -F ‘分隔符‘ ‘条件{print 位置参数"输出语句"位置参数}‘
$0为全行,
$n为第N个字段
NR为行号
NF为总行数
sed文本在线编辑工具,一行一行处理,主要用于对文件的增删改查
基本表达式为:sed -[选项] "行号,行号 操作" 文件
或者 sed -[选项] "/条件/操作" 文件
其中主要常用选项有:
-i:直接对文件里面内容操作
-n:显示匹配的行,否者会全部显示
删:操作中删除行为d ;若要删除字段这用 s/字段//g 来实现,原理是把这个字段变成空格来实现删除。
增:在某行前添加一个新行主要用i,某行后面添加为a;如要行首添加但不换行则为 s/^/字段/,行尾添加但不换行为 s/$/字段/;若要某个字段1前添加某个字段2则为:s/字段1/字段1字段2/。
改:若要把字段1改为字段2则为:s/字段1/字段2/g,加了g就是全局替换,否则只替换匹配行的第一个字段。
查:用的是-n选项和p操作。
值得注意的是sed的操作中=为打印行号。
cut 用来截取某个字段
-d ‘指定分隔符‘
-f ‘提取的段号‘
-c 以字符为单位
wc 用来统计
-l 统计总共的行
-w 统计总共的字符
-m 统计总共的字节
grep用来过滤一般与|一起用
-c:统计行数
-n:显示行号
-E:支持正则表达式,也可以写作egrep
-v:显示不匹配的行(取反)
tail -n 数字 取倒数几行
head -n 数字 取头几行
这是我目前整理出来的实用的命定选项,如有错误请指正,如有更优或补充请建议
本文出自 “创新分享驰骋里外” 博客,请务必保留此出处http://10554846.blog.51cto.com/10544846/1679242
原文地址:http://10554846.blog.51cto.com/10544846/1679242