• shell脚本中的变量


           在shell脚本中使用变量显得我们的脚本更加专业更像是一门语言,开个玩笑,变量的作用当然不是为了专业。如果你写了一个长达1000行的shell脚本,并且脚本中出现了某一个命令或者路径几百次。突然你觉得路径不对想换一下,那岂不是要更改几百次?你固然可以使用批量替换的命令,但是也是很麻烦,并且脚本显得臃肿了很多。变量的作用就是用来解决这个问题的。

      来看一个示例:

    #! /bin/bash
    ## author:Xiong Xuehao
    ## This is my first shell script. Using variables in scripts.
    
    d1=`date +%H:%M:%S`
    echo "The script begin at $d1"
    echo "now we will sleep 2 seconds"
    sleep 2
    d2=`date +%H:%M:%S`
    echo "The script end at $d2"

           在myfirstbash_002.sh中使用到了反引号(TAB键上方,1/!键左边的那个键),你是否还记得它的作用?’d1’和’d2’在脚本中作为变量出现,定义变量的格式为“变量名=变量的值”。当在脚本中引用变量时需要加上’$’符号。下面看看脚本执行结果吧:

    案例1:在shell脚本中使用数学计算

    下面我们用shell计算两个数的和。

    #! /bin/bash
    ## author:Xiong Xuehao
    ## This is my first shell script. Calculate the sum of two numbers.
    
    x=1
    y=2
    sum=$[$x+$y]
    echo "$x + $y sum is $sum"

    数学计算要用’[ ]’括起来并且外头要带一个’$’。脚本结果为:

       

    案例2:Shell脚本还可以和用户交互

    Shell脚本和用户交互: 

    #! /bin/bash
    ## author:Xiong Xuehao
    ## This is my first shell script. Use read in the script.
    
    echo "Please input a number:"
    read x
    echo "Please input another number:"
    read y
    
    sum=$[$x+$y]
    echo "$x + $y sum is $sum"

    这就用到了read命令了,它可以从标准输入获得变量的值,后跟变量名。”read x”表示x变量的值需要用户通过键盘输入得到。脚本执行过程如下:

     我们不妨加上-x选项再来看看这个执行过程:

    在myfirstbash_004.sh中还有更加简洁的方式:

    #! /bin/bash
    ## author:Xiong Xuehao
    ## This is my first shell script. Use read in the script.
    
    read -p "Please input a number:" x
    read -p "Please input another number:" y
    
    sum=$[$x+$y]
    echo "$x + $y sum is $sum"

    read -p 选项类似echo的作用。执行如下:

      

    案例3:Shell脚本预设变量

    你有没有用过这样的命令”/etc/init.d/iptables restart “ 前面的/etc/init.d/iptables 文件其实就是一个shell脚本,为什么后面可以跟一个”restart”? 这里就涉及到了shell脚本的预设变量。实际上,shell脚本在执行的时候后边是可以跟变量的,而且还可以跟多个。示例:

    #! /bin/bash
    ## author:Xiong Xuehao
    ## This is my first shell script. Use preset variables.
    sum=$[$1+$2]
    echo "$1 + $2 sum is $sum"

    执行过程如下:

     

     在脚本中,你会不会奇怪,哪里来的$1和$2,这其实就是shell脚本的预设变量,其中$1的值就是在执行的时候输入的1,而$2的值就是执行的时候输入的$2,当然一个shell脚本的预设变量是没有限制的,这回你明白了吧。另外还有一个$0,不过它代表的是脚本本身的名字。

  • 相关阅读:
    有道词典_每日一句_2020/06
    有道词典_每日一句_2020/05
    有道词典_每日一句_2020/04
    有道词典_每日一句_2020/03
    Vue的模板语法之指令1——Vue学习笔记(3)
    Vue的模板语法之插值——Vue学习笔记(2)
    Vue的基本使用——Vue学习笔记(1)
    有道词典_每日一句_2020/02
    有道词典_每日一句_2020/01
    微信小程序 真机调试警告:Some selectors are not allowed in component wxss
  • 原文地址:https://www.cnblogs.com/xiongzaiqiren/p/15102870.html
Copyright © 2020-2023  润新知