shell

生成随机数

[root@yunweb jiaoben]# openssl rand -hex 1

27

[root@yunweb jiaoben]# openssl rand -hex 3

cc8dcb

[root@yunweb jiaoben]# openssl rand -hex 2

d4ad

[root@yunweb jiaoben]# openssl rand -hex 3 | sed -r "s/(..)(..)(..)/\1:\2:\3/g"

16:d9:48

read -p “请你输入用户名称:” username 读用户的标准输入

!/bin/bash

bash脚本调试

•sh –x script这将执行该脚本并显示所有变量的值

•sh –n script不执行脚本只是检查语法模式,将返回所有错误语法

•sh –v script执行脚本前把脚本内容显示在屏幕上

\n:换行 \t : tab键 制表符 \r:回车

                                           变量

定义:变量名称=值; =是赋值符号,前后不能有空白 a="hell" $a

永久生效:写到四个登录脚本,/etc/profile ~/.baserc ~/.bash_profile /etc/bashrc source~/.bashrc

在/etc/profile.d建立独立的环境变量配置文件

$$ 当前进程PID

$? 命令执行后的返回状态.0 为执行正确,非 0 为执行错误

$# 位置参数的数量

$* 所有位置参数的内容

$@ 所有的参数

$! 上一个后台进程的PID (wait命令中使用)

$(()) 运算加减乘除 let i++ 应用于累加 +、-、*、/、()、%取余(取模)

bash本身不能做小数计算:需要bc命令转换 #echo "2'*'4" | bc

echo"Press y to continue"

read yn

if[ "$yn" = "y" ]; then

echo "script is running..."

else

echo "STOP!"

fi



case $i in

1)

echo

 ;;

2)

echo

 ;;

3|4)

 echo 

;;

n)

echo 

;;

*) 输入错误;;

esac 
cat <<-EOF

...

EOF
#seq 10             打印1..10  

#seq  5 10              

#seq  1 2 10          只打印奇数  2是步长0
[ 1 -gt 10 ] 大于                                     [ 1 -lt 10 ] 小于                                [ 1 -eq 10 ] 等于

[ 1 -ne 10 ] 不等于                             [ 1 -ge 10 ] 大于等于                           [ 1 -le 10 ] 小于等于
while 循环:

#!/bin/bash

#14.sh

x=0

while [ $x -le 10 ]                                                while:死循环

do

echo $x

  x=`expr $x + 1`let x++

done

while read IP

do

done < /etc/passwd

sleep 10 & 后台运行 wait 作业号或进程号 $! 上一个进程执行的pid

continue:跳出当前这一次循环

用Massachusetts替换MA:

#sed ‘s/MA/Massachusetts/’ file1.txt

改变分隔字符:

#awk -F , '/MA/{ print $1 }' file1.txt
awk -F : 'NR==2 {print $7}'        第二行第7列

1,3范围 从第一行到第三行

#sed -n '1,3p' passwd                                  打印1到3行

删除第五行到结尾所有的行 5,$d

混合使用行地址和模式地址 #sed ‘1,/^$/d' file.txt

删除除了那些行以外的行 1,5!d

c 替换 sed '/zhong/c abc' 将zhong这一行替换成abc

返回值 return value value不能超过255

默认,函数里的变量会在函数外面生效 local 变量名称 //变量只在函数内生效

myfunc()    //函数定义

{

echo “This is my first shell function”

}

myfunc //函数调用

unset myfunc//取消函数

你可能感兴趣的:(shell)