SHELL编程基础

    xiaoxiao2021-03-25  121

    SHELL脚本

    第一行写#!/bin/bash表示的是执行脚本所用的shell的版本,执行时默认调用子进程来完成。  

    强弱引用

    1.echo "  " ##弱引用 2.echo '  ' ##强引用 3.echo -e "\n" ##使的\n有换行的能力 4.echo \# \* \$HOME ##\为转义字符(可以转义变量)弱引用不会使变量(包括$*和``)失效 而强引用则会使变量失效

    变量的使用

    a=${HOME} ##{}:标出一个变量与其他字段分开也可一修改变量内容 b=$(date +%H-%M-%S) ##():先让()内的命令执行,执行完后在将结果赋值(产生的结果为多行使,b会变成数组)

    数值的处理

     

    $[5-6]((i+=j)) ##用于写等式很方便((min=i/60)) ##min=$(($i/60))也行

    参数的应用

     

    $0 $1 $2 $3 .. ##脚本后面跟的参数$# ## 参数的个数$@ ##所有参数的内容$* ##所有参数的内容

     

    交互式输入

     

    read -p"..." NAME##输入内容至NAME,...为提示read -s NAME ##用于密码输入

    赋值运算符

     

    =,+=,-=,++,--(+,-,*,/,%)

    逻辑运算符

    eq(==,=),ne(!=),!,gt,ge,lt,le ##相等,不等,取反,大于,大于等于,小于,小于等于

    脚本语法

    1.for in系列

    for num in {1..10} ##num取值1-10 do echo $num done for num in $((seq 1 10)) ##num取值1-10 do echo $num done

    2.经典for循环

    for ((i=0;i<10;i++)) ##C语言for循环类型 do echo $i done

    3. while循环

    while [ -z "$?" ] do done

    4. if

    if [ "$1" == "1" ]; then ##if语句 echo hello elif [ "$1" == "2" ];then echo world else echo hello world fi

    5.case

    case $1 in ##case开关语句 hello) echo world ;; world) echo hello ;; *) echo ERROR ;; esac

    环境变量

    1.用户的环境变量 vim ~/.bash_profile ##将a升级为这个用户的环境变量

    export a=1

    2.系统级环境变量(两种都可以)

    vim /etc/profile ##将a升级为系统环境变量 export a=1 vim /etc/bashrc export a=1

    自动应答脚本

    yum install expect  ##安装自动应答器

    #!/usr/bin/expect ##需要将文件加入执行权限 set USER [ lindex $argv 0 ] set PASS [ lindex $argv 1 ] set IP [ lindex $argv 2 ] spawn ./ssh.sh ##该脚本会自动回答本目录下的ssh.sh(要有执行权限) expect { "Are you sure"{ send "yes\r"; exp_continue } "username" { send "$USER\r"; exp_continue } "password" { send "$PASS\r"; exp_continue } "ipaddr" { send "$IP\r"; exp_continue } } interact ##回答完后停留在里面

     

    小技巧:

    cat filename|wc -l ##查看filename的行数sed -n 5p filename ##查看filename的第五行echo $passwd |passwd --stdin user1 ##将$passwd作为user1的密码ifconfig|sed -n 2p |cut -d ' ' -f 10 ##IP地址

     

    转载请注明原文地址: https://ju.6miu.com/read-14546.html

    最新回复(0)