zoukankan      html  css  js  c++  java
  • linux shell使用

    1,变量的获取

    普通变量:${var_name}

    特殊变量:

    $# 是传给脚本的参数个数

    $0 是脚本本身的名字

    $1 是传递给该shell脚本的第一个参数
    $2 是传递给该shell脚本的第二个参数
    $@ 是传给脚本的所有参数的列表
    $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9
    $$ 是脚本运行的当前进程ID号
    $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
     

    2,'',""和``的区别

    单引号(''):单引号内是什么输出就是什么不管$还有其他

    双引号(""):双引号会对双引号内的参数替换($)和命令替换(``)

    反引号(``):是命令替换,命令替换是指Shell可以先执行``中的命令,将输出结果暂时保存,在适当的地方输出。语法:`command`

    例:变量 n=3

        echo '$n'      输出   $n

        echo "$n"     输出   3

          变量 USERS=`who | wc -l`       

      echo "Logged in user are $USERS"     输出   Logged in user are 1

    3,运算符

    4,shell中得比较
    文件比较运算符
    -e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]
    -d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]
    -f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]
    -L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]
    -r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]
    -w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]
    -x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
    filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]
    filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
    字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
    -z string 如果 string长度为零,则为真 [ -z "$myvar" ]
    -n string 如果 string长度非零,则为真 [ -n "$myvar" ]
    string1= string2 如果 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
    string1!= string2 如果 string1与 string2不同,则为真 [ "$myvar" != "one two three" ]
    算术比较运算符
    num1-eq num2 等于 [ 3 -eq $mynum ]
    num1-ne num2 不等于 [ 3 -ne $mynum ]
    num1-lt num2 小于 [ 3 -lt $mynum ]
    num1-le num2 小于或等于 [ 3 -le $mynum ]
    num1-gt num2 大于 [ 3 -gt $mynum ]
    num1-ge num2 大于或等于 [ 3 -ge $mynum ]

    5,shell动态变量名

    avr_0=
    avr_1=
    avr_2=
    avr_3=
    avr_4=
    avr_5=
    avr_6=
    avr_7=
    
    # 赋值 avr_x = 
    for i in $(seq 0 7)
    do
    eval avr_${i}=${i}
    done
    
    # 取值
    for i in $(seq 0 7)
    do
    tmp=$(eval echo '$'avr_${i})
    eval echo ${tmp}
    done

    6,返回这个脚本文件放置的目录

    cd `dirname $0`

    命令。这个命令的含义是 返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。

     7,sleep用法

    s:表示秒          sleep 1s      休眠1秒
    m:表示分钟     sleep  1m    休眠1分种
    h:表示小时
    d:表示天

  • 相关阅读:
    Beta冲刺——day2
    Beta冲刺——day1
    OpenGL立方体在世界坐标系中_缩放_旋转_平移_顶点片源着色器_光照作用_棋盘纹理贴图
    FIRST集和FOLLOW集
    现代计算机接口实验 (五)0809实验
    现代计算机接口实验 (四)0832实验
    现代计算机接口实验 (二)8253实验
    现代计算机接口实验 (三)8255实验
    现代计算机接口实验 (一)熟悉环境
    可编程控制器实训
  • 原文地址:https://www.cnblogs.com/dongchao3312/p/12925897.html
Copyright © 2011-2022 走看看