• (四)bash中的运算符


    8: Bash  的变量和运算符

    1:Bash变量与其他编程语言的不同

    (1)在 Bash 中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。

    (2)变量用等号连接值,等号左右两侧不能有空格。

    (3)变量的值如果有空格,需要使用单引号或双引号包括。如:“test="hello world!"”。其中双引号括起来的内容“$”、“”和反引号都拥有特殊含义,而单引号括起来的内容都是普通字符。 在变量的值中,可以使用“”转义符。 如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要用双引号包含"$变量名

    "或用${变量名}包含变量名

     

    2:变量的分类

      用户自定义变量:这种变量是最常见的变量,由用户自由定义变量名和变量的值。

      环境变量:这种变量中主要保存的是和系统操作环境相关的数据,比如当前登录用户,用户的家目录,命令的提示符等。环境变量的变量名可以自由定义,但是一般对系统起作用的环境变量的变量名是系统预先设定好的。

      位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。

      预定义变量:是 Bash 中已经定义好的变量,变量名不能自定义,变量作用也是固定的。

     

    (1)自定义变量

    用户自定义变量:#等号左右两侧不能有空格

    [root@localhost ~]# name=123

    echo $name

    变量的增删改查:

    增加 :name=123,

    改:name=567直接覆盖,

    删除:unset name 删除变量,可以理解为释放变量的内存空间

    查询:查看变量是否已经定义,或者系统定义了多少变量。

     

    set 命令[选项]

    选项:

    -u:  如果设定此选项,调用未声明变量时会报错(默认无任何提示)

    -x: 如果设定此选项,在命令执行之前,会把命令先输出一次

     

    (2)系统环境变量

    1:环境变量设置

    export age="18"

     

    2: 环境变量查询和删除

    env 命令和 set 命令的区别是,set 命令可以查看所有变量,而 env 命令只能查看环境变量。

    [root@localhost ~]# unset gender

    [root@localhost ~]# env | grep gender

     

    3:系统默认环境变量

    HOSTNAME=localhost.localdomain 主机名

    SHELL=/bin/bash 当前的 shell 

    TERM=linux  终端环境

    HISTSIZE=1000   历史命令条数

    SSH_CLIENT=192.168.4.159 4824 22  当前操作环境是用 ssh 连接的,这里记录客户端 ip

    SSH_TTY=/dev/pts/1

    例如:PATH="$PATH":/root/sh 修改系统bin执行路径添加sh

     

    4: LANG 语系变量

    LANG 变量定义了 Linux 系统的主语系环境,这个变量的默认值是:

    [root@localhost src]# echo $LANG

     

    (3)位置参数变量

    $n:  n 为数字,$0 代表命令本身,$1-$9 代表第一到第九个参数,十以上的参数需要用大括号包含,如${10}.

    $*  这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体.

    $@  这个变量也代表命令行中所有的参数,不过$@把每个参数区分待

    $#  这个变量代表命令行中所有参数的个数.

    $1表示的是第一个参数,$0表示的是命令本身。

    [root@localhost sh]# more parment.sh

    #!/bin/bash

     

    for i in $*  #循环输出

        do

          echo "The paramenters is : $i"

    done

     

    for y in "$@"

    #同样 in 后面的有几个值,for 循环几次,每次都把值赋予变量 y

    #可是 Shell 中把“$@”中的每个参数都看成是独立的,所以“$@”中有几个参数,就会循环几次

    do

    echo "The parameter$x is: $y"

    #输出变量 y 的值

    x=$(( $x +1 ))

    #然变量 x 每次循环都加 1,为了输出时看的更清楚

    done

     

    (4)预定义变量:

    $?  最后一次执行的命令的返回状态。如果这个变量的值为 0,证明上一个命令正确执行;如果这个变量的值为非 0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了。

    $$  当前进程的进程号(PID)

    $!  后台运行的最后一个进程的进程号(PID)

     

    9: 接收键盘输入

    read [选项] [变量名]

    选项:

    -p “提示信息”:  在等待 read 输入时,输出提示信息

    -t 秒数:  read 命令会一直等待用户输入,使用此选项可以指定等待时间

    -n 字符数: read 命令只接受指定的字符数,就会执行

    -s:隐藏输入的数据,适用于机密信息的输入

     

    变量名:变量名可以自定义,如果不指定变量名,会把输入保存入默认变量 REPLY。如果只提供了一个变量名,则整个输入行赋予该变量。如果提供了一个以上的变量名,则输入行分为若干字,一个接一个地赋予各个变量。

  • 相关阅读:
    小菜鸟学 MQ(三)
    小菜鸟 学MQ(二)
    小菜鸟学 MQ(一)
    CXF 自定义拦截器
    WebService 入门程序(一)
    查找满足条件的颜色并替换
    jsfl 巧用获取jsfl绝对路径,导入配置文件,注意配置文件无法改变舞台宽高
    jsfl 发布保存关闭
    jsfl 改变舞台宽高
    AS3 在不规则区域内拖动
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/11668763.html
Copyright © 2020-2023  润新知