首页 > 系统服务 > 详细

shell命令

时间:2020-02-29 09:46:28      阅读:72      评论:0      收藏:0      [点我收藏+]
  1. 执行shell文件的方式

    source xx.sh
    sh xx.sh
    bash xx.sh
    ./xx.sh
  2. 管道与重定向

    grep "/bin/bash$" /etc/passwd | awk (-F:) '{print $1,$7}'
    awk是进一步过滤
    
    >会覆盖
    >>附加
  3. shell脚本变量

    引用变量值:在变量名称前添加”$”
    当变量名称容易和紧跟其后其他字符相混淆时,需要添加”{}”将其括起来
    “”起界定字符串的作用
    反撇号:ls -lh `which tar`
    read -p "请输入想要安装的软件:" b//把输入的值赋予b
    export  //转化为全局变量
  4. 数值变量的运算

    expr //进行整数之间的运算
    运算符 意义
    ++ -- 增加及减少,可前置也可放到结尾
    * / % 乘法、除法、取余
    + - 加法、减法
    < <= > >= 比较符号
    == != 等于与不等于
    & 位的与
    ^ 位的异或
    | 位的或
    && 逻辑的与
    || 逻辑的或
    ?: 条件表达式
    = += -= *= /= %= &= ^= <<= >>= |= 赋值运算符a+=相当于a=a+1

    set 查看定义的变量

    unset Serversion 取消变量

    readonly 变量名 设置只读变量,unset不能删除只读变量

  5. 特殊变量

    环境变量

    echo $PATH//环境变量
    ~/.bash_profile//用户变量

    位置变量

    #!/bin/bash
    SUM=`expr $1 + $2`
    echo "$1+$2"= $SUM
    
    # chmod +x addr2num.sh 
    # ./addr2num.sh 15 20
    15 +  20= 35

    预定义变量

    $#:表示命令行中位置参数的个数
    $*:表示所有位置参数的内容
    $?:表示前一条命令执行后的返回状态,返回值为0表示正确执行,返回值为1表示执行异常
    $0:表示当前执行的脚本或程序名称
    
    #!/bin/bash
    T=`date "+%Y%m%d-%H%M"`
    TARFILE=beifen-${T}.tgz
    tar zcf $TARFILE $* &>/dev/null
    echo "已执行$0脚本"
    echo "共完成$#个对象的备份"
    echo "具体内容包括:$*"
    chmod +x mybak.sh
    
    # ./mybak.sh /boot/grub /mnt/public /root/aa
    已执行./mybak.sh脚本
    共完成1个对象的备份
    具体内容包括:/boot/grub

    条件语句

    文件测试

    -d 测试是否为目录(Directory)
    -e 测试目录或文件是否存在(Exist)
    -f 测试是否为文件(File)
    -r 测试当前用户是否有权限读取(Read)
    -w 测试当前用户是否有权限写入(Write)
    -x 测试是否设置有可执行(Excute)权限
    判断/mnt/cdrom目录是否存在?
    # test -e /mnt/cdrom
    # echo $?
    
    [ 条件表达式 ]或[ [条件表达式] ]进行条件测试
    
    -nt 判断文件A是否比文件B新
    -ot 判断文件A是否比文件B旧
    -ef 判断两个文件是否为同一个文件,用来判断两个文件是否指向同一个inode

    整数值比较

    -eq   a等于b
    -ne   a不等于b
    -gt   a大于b
    -lt   a小于b
    -le   a小于或等于b
    -ge   a大于或等于b

    判断当前可用空闲内存(free)大小

    字符串比较

    =     第一个字符串与第二个字符串相同
    !=   第一个字符串与第二个字符串不相同
    -z    检查字符串为空(zero),对于未定义或赋予空值的变量将视为空串

    逻辑测试

     &&   逻辑与
     ||   逻辑或
     !   逻辑否

    if语句结构

    if 条件测试语句
          then  
             命令序列
    fi
    双分支
    if 条件测试语句
          then  
             命令序列1
          else
             命令序列2
    fi
    
    多分支
     if 条件测试操作1
          then  
             命令序列1
          elif 条件测试操作2
    then  
             命令序列2
          eles
             命令序列3
    fi

shell命令

原文:https://www.cnblogs.com/wxj1711652908/p/12381486.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!