shell

作者: Icarus_ac47 | 来源:发表于2018-09-20 19:58 被阅读0次

    生成随机数

    [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

          本文链接:https://www.haomeiwen.com/subject/ybrnnftx.html