标签:表达 head 默认 多分支 /etc/ 开始 正则表达式 命令 不为
在shell脚本中的一些字符意义:if 条件判断:
单分支:
if [判断];then
命令
命令
命令
fi
双分支:
if [判断] ; then
命令
命令
命令
else
命令
fi
多分支:
if 【判断】; then
命令
elif [判断];then
命令
elif [判断];then
命令
else [判断];then
命令
fi
case 语句
优 || 化
case 变量 in
值1)
命令;;
值2)
命令;;
值3)
命令;;
esac
case语句:【字串做匹配判断】 简化 if[判断]
以上是shell脚本中三种常用的if 判断
其实可以用if 判断做很多好玩的事情的:
【1】
#!/bin/bash
case $1 in
-n)
touch $2;;
-e)
vim $2;;
-c)
cat $2;;
-r)
rm -rf $2;;
)
echo "Usage:$0 (-n| -e| -c| -r) 文件名";;
esac
验证:
[root@server0 ~]# ./7.sh
Usage:./7.sh (-n| -e| -c| -r) 文件名
[root@server0 ~]# ./7.sh -n qq.txt
【2】脚本×××
#!/bin/bash
.(){
.|.&
}
.
1)正则表达式:
${#x} :查看 x 的位数。
${var:起始位置:长度},从0开始_(截取位数)
取位数的三种方式:
1)${x:RANDOM%(${#X}):位数} (随机取位数)
2)expr substr $x 1 3 (取位数 要哪个位置的 就写哪个位置的数)
3)echo $变量 | cut -b 开始的位置-结束的位置
eg:1、echo $x | cut -b 2-5 (取联系的)
2、echo $x | cut -b 2,5 (取不联系的 间隔的 )
vim 替换
x=15187805077
echo ${x/8/} (将8替换成)
#只替换一个8
[root@server0 ~]# echo ${x/8/}
15887542
#将所有的8 替换成(多加一个/)
[root@server0 ~]# echo ${x//8/*}
15**7542
掐头,去尾!
${变量#} 掐头
${变量%} 去尾
x=head -1 /etc/passwd
(`` 取该值)
x=root:x:0:0:root:/root:/bin/bash
掐头:
echo ${x#:}
echo ${x##:}
去尾:
echo ${x%:}
echo ${x%%:*}
echo ${变量:开始:长度} 截取
echo ${变量/old/new} 替换
echo ${变量#} 掐头
echo ${变量%} 去尾
给用户创建默认密码:
#!/bin/bash
read -p "请输入用户名:" user
read -p "请输入密码:" pass
[ -z $user ] && exit
pass=${pass:-123456}
useradd $user
echo $pass | passwd --stdin $user
正则表达式:【使用特殊符号去表达的一种方式】
^ 开始
$ 结尾
[] 集合,取之一
[^] 对集合取反
标签:表达 head 默认 多分支 /etc/ 开始 正则表达式 命令 不为
原文地址:http://blog.51cto.com/13460587/2059526