文件测试(单目):
-e file:测试文件是否存在 -f file:测试文件是否为普通文件 -d file:测试文件是否为目录 -r file:测试当前用户对指定文件是否有读取权限 -w file:测试当前用户对指定文件是否有写入权限 -x file:测试当前用户对指定文件是否有执行的权限
多分支的if语句:
if 判断条件; then
statement1
elif 判断条件2; then
statement2
elif 判断条件3; then
statement3
else
statement4
fi
测试脚本是否有语法错误:
bash -n 脚本 bash -x 脚本(单步执行)
位置变量:$1 $2 $3
例:bash w.sh /etc/passwd /etc/fstab 脚本中 $1 :就表示为/etc/passwd $2 :就表示为/etc/fstab
shift:轮替 (位置变量用过一次后就会踢出) shift n(数字):可以跳n个位置
echo "$1"
shift
echo "$1"
shift 2
echo "$1"
特殊变量:$? $#(显示参数个数) $*(显示参数列表) $@(显示参数列表)
例:if [ $# -lt 0 ]; then
注: exit 返回码(错误):退出脚本 ,定义脚本退出状态码,如果脚本设有明确定义,退出状态码那么就时最后执行的一条命令的退出码,即为脚本的退出状态码。
sed基本用法:stream editor行编辑器,
-n:静默模式(不再默认显示模式空间的内容) -i:修改源文件(一般不使用) -e script -e script..:可以同时执行多个脚本 -f /path/to/sed_script: 使用正则表达式
sed是在一段内存空间(模式空间)中处理文件的,所以不会直接编辑源文件,然而,处理结束后,将模式空间的内容打印到屏幕上(所以有时候显示为重复的两行)
sed address(地址) command file...
Address:
1.startline,endline
2./pattern(regexp)/
3. /pattern1/,/pattern2/(第一次被1匹配到的行至第一次被2匹配到的行结束,中间的所有行)
4.linenumber:指定的行,$:最后一行 $-1:倒数第二行
5.startline,+n:从startline开始,向后的n行;
Commad:
d:删除符合条件的行(例:sed ‘1,2d’(双引号为变量引用)/etc/fstab) p:显示符合条件的行 a\string:在指定的行后面追加新行(例:‘/^\//a \#....’/etc/passwd或/^\//a \#...\n...) i \string: 在 指定的行前面追加新行 r file:将指定的文件的内容添加至符合条件的行出(例:sed ‘2r /etc/fstab’/etc/passwd) w file: 将指定范围内的内容另存至指定的文件中(例:‘/root/w /etc/passwd’/etc/fstab)
s :查找并替换 s/pattern/string/ (例:s/^\//#/ /etc/passwd)默认只替换每行中第一次匹配到的字符串,加修饰符:g(全屏替换s///g) i:忽略大小写 。(s除了///还可以使用### @@@ 等...) &:引用模式匹配整个串(sed 's#/r..t/#&r#g' /etc/passwd) 也支持后向引用 (sed ‘s#\(r..t\)#\1r#g’ /etc/passwd) (只改变单个首字母:sed ‘s#r(..t\)#R\1#g’ /etc/passwd) 在4到末行的每行前面加eee:sed ‘4,$s/^.*/eee&/’***(若&eee则在每行后面添加eee)
字符测试:
==(或=) :比较,相等为真,不等为假 :[$A = $B] != : 不等为真,相等为假 > < >= <= -n string:测试指定字符串是否为空,空则真,不空则假 -z string:测试指定字符串是否为空,空则假,不空则真
for循环:进入条件,退出条件
for 变量 in 列表;do
循环体
done
生成列表;{1..100}
seq 10 : 1--10 seq 5 10: 5--10 seq2 2 10: 2 4 6 8 10 seq 1 2 10: 1 3 5 7 9
seq : 起始数 步进长度 结束数
declare -n(声明变量类型) Num=0 -x :环境变量
例:LINE=`wc -l /etc/passwd | cut -d‘ ’ -f1`
for I in `seq | $LINE`; do
echo "###,`head -n $I /etc/passwd | tail -1 |cut -d: -f1`";done
linux 笔记--文件测试,特殊变量,sed命令,字符串测试及for循环
原创笨鸟先辉 博主文章分类:linux 运维学习笔记 ©著作权
©著作权归作者所有:来自51CTO博客作者笨鸟先辉的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
字符串测试 and for 循环 (笔记)
测试,字符串,for循环
测试 字符串 for循环 -
Linux exit 文件测试 测试条件、特殊变量 (笔记)
位置变量 ,文件测试,特殊变量
特殊变量 位置变量 文件测试 -
循环字符串特殊问题
循环字符串求和,出现多次问题,字符串拼接导致的。。。。
字符串 字符串拼接 -
字符串测试
字符串测试
字符串 字符串测试