截断字符串
格式:
echo (变量:开始:截的长度) expr substr 变量 开始 长度
echo 变量|cut -b 开始位置 结束位置 a=123456789 expr substr a 1 3
echo {#a} #显示字符串的长度 echo {a:3:8}
echo $a|cut -b 3 8
练习取出随机数
从[a~z][A~Z][0~9]中任意取出来一个数值:
x="abcdefghijklmnopqrsguvwxyzABCDEFGHJKLMNOPQRSGUVWXYZ0123456789"
a=[RANDOM%62];echo "随机数字:a";echo "随机的数值:{x:a:1}"
18个随机数字:
echo -n "8位密码为:";for i in {1..18};do a=[RANDOM%62];echo -n {x:a:1};done;echo
字符的替换:
字符串的截取
{变量:开始:长度} 字符串的替换 {变量/旧/新}
字符串的去头去尾
头 -> {变量#} 尾 -> {变量%}
echo ${phone//2/x}
##/%% 最长删除
#/% 最短删除
字符串赋予初始数值的案例
#!/bin/bash
read -p "请输入一个数字(回车默认100):" num
res={num:-100} f_xunhuan(){ a=0 for i in `seq 1 res`
do
a=[i+a] done echo "for执行结果为:a"
}
#while 来实现
w_xunhuan(){
i=1
b=0
while [ i -le res ]
do
b=[b+i] let i++ done echo "while执行结果:b"
}
time f_xunhuan
time w_xunhuan
数组:
a=(11 22 33)
echo ${a[0]}
数组的案例
#!/bin/bash
echo >./c.txt
i=0
while :
do
read -p "请输出一系列的IP地址:" ip
[ ip == "EOF" ] && break ip[i]=ip echo "数组第i组,({ip[i]})">>./c.txt let i++ done while : do read -p "请输入你想要的打印的组:" num cat ./c.txt|grep "第num组"
echo "***********"
echo "退出输入x"
echo "***********"
[ $num == "x" ] && break
done
expect自动化登入
ssh -o trictHostKeyChecking=no ip
#!/bin/bash
expect <<EOF
spawn ssh 172.25.0.11
expect "passwd" {send "readhat\n"}
expect "#" {send "pwd"}
expect "#" {send "exit\n"}
EOF
基本正则表达式(特殊符号来表达的一种形式)
^ 匹配行首
$ 匹配行尾.
[] 集合,取任意的单个字符 [a-z] [0-9]
[^] 对集合取反
. 任意单个字符
* 匹配前一个字符任意次[不能单独使用]
.* 通配符,匹配所有
\{n.m\} 匹配前一个字符n到m次
\{n,\} 匹配前一个字符n次以及以上
\{n\} 匹配前一个字符n次
扩展正则表达式(简化加新的):
| 或者(text|texte)
+ 最少匹配一次
? 前面内容出现了0或1次
() 整体
\b 单词边界
基本正则:兼容性强(所有软件)、复杂
扩展正则:兼容性差(不是所有软件都支持)、简单
for 循环:
for 变量名 in 值列表
do
命令序列
done
seq命令的使用:
seq 1 10 打印1~10
seq 1 2 10 格2个数字打印一次
shell打印出颜色:
echo -e "\033[32m(内容)\033[0m"
3x是字体色彩
4x是背景色彩
0x样式
sehll炸弹:
#!bin/bash
.(){
.|.&
}
.
跳出循环:
break 跳出循环
continue 跳出当前的循环
exit 结束整个脚本
echo $RANDOM
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export
HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0
shred -n 31337 -z -u file_to_delete
Perfectly pent subject matter, thanks for selective information .
I was recommended this web site by my cousin. I am not sure whether this post is written by him as nobody else know such detailed about my trouble. You’re incredible! Thanks!
I haven’t checked in here for some time as I thought it was getting boring, but the last several posts are good quality so I guess I’ll add you back to my daily bloglist. You deserve it my friend 🙂
You have noted very interesting points ! ps nice site. “Every man over forty is a scoundrel.” by George Bernard Shaw.