zoukankan      html  css  js  c++  java
  • [shell基础]——变量

    变量的赋值

    #定义变量,注意等号两边没有任何空格
    variable=
    #定义环境变量
    export variable=
    #双引号:可含空格、可转义特殊字符
    variable=" "              
    #$() 或 反引号:将命令结果赋值给变量
    variable=$( )  
    variable=`  `     
    #将变量值赋值给变量
    gg=$aa$bb

    变量的取值

    #取值
    $variable
    #标准写法,建议使用此方法
    ${variable} 

    #示例:
    #DAY
    =sunday
    #
    echo $DAY
    sunday
    #
    echo "hello sunday"> $DAY_file.txt
    #
    ls

    #
    echo "hello sunday"> ${DAY}_file.txt
    #
    ls sunday_file.txt

    变量的取消与查看 

    #unset:取消变量和函数
    unset variable
    unset function
    #env    查看系统所有的环境变量
    #set    查看所有的系统预设变量+用户自定义变量

    局部变量/用户变量

          局部变量:只在当前的shell中有效;
          用户变量:针对与当前用户有效, .bashrc 下可以查看。

                         

    全局变量/环境变量

          当前创建变量的shell即为父shell,全局变量可以从父shell传递到子shell、孙shell···

          注意环境变量只能向下传递而不能向上传递。

                       

    一些常见的预设变量(可通过 man bash查看):

    #变量BASH:显示当前的bash shell
    [root@localhost shell]# echo $BASH
    /bin/bash
    
    #变量BASH_VERSION:显示当前bash shell版本
    [root@localhost shell]# echo $BASH_VERSION
    4.1.2(1)-release
    
    #变量HOSTNAME:主机名
    [root@TXY_host test]# echo $HOSTNAME
    TXY_host
    
    #变量HOSTTYPE:主机架构
    [root@TXY_host test]# echo $HOSTTYPE
    x86_64
    
    #变量MACHTYPE:主机类型的gnu标识
    [root@TXY_host test]# echo $MACHTYPE
    x86_64-redhat-linux-gnu
    
    #变量LANG:系统的语言环境
    [root@TXY_host test]# echo $LANG
    C
    #设置语言环境为中文
    # export LANG=zh_CN.UTF-8
    
    #变量PWD:当前目录
    [root@TXY_host test]# echo $PWD
    /shell/test
    
    #变量OLDPWD:上一次访问目录
    [root@TXY_host test]# echo $OLDPWD
    /shell
    
    #变量EUID:显示当前用户的UID
    [root@localhost ~]# echo $EUID
    0
    
    #变量CDPATH:可以快速进入此目录
    #cd时会首先查看当前目录是否有network-scripts,若没有则进入CDPATH定义的目录
    [root@localhost shell]# CDPATH="/etc/sysconfig"
    [root@localhost shell]# cd network-scripts
    /etc/sysconfig/network-scripts
    
    #变量FUNCNAME:用在函数内,显示当前函数名
    [root@TXY_host test]# cat funcname.sh
    #/bin/bash
    funcname()
    {
       echo $FUNCNAME
    }
    funcname
    
    [root@TXY_host test]# bash funcname.sh
    funcname

    特殊变量

    1.位置参数

            $0:预留保存实际脚本名字;无论脚本是否有参数,此值均可用。
            $1-$9:第1—9个参数

            ${10}:位置参数大于9后的表示方法

            $#:脚本参数的个数总和

            $*/$@:表示脚本的所有参数

    2. 特定的变量参数

            $!   Shell最后运行的后台Process的PID  
            $-   显示shell使用的当前选项,与set命令功能相同
           $$   脚本运行的当前进程ID号

    # cat aatest.sh
    #!/bin/bash
    echo $$
    # ./aatest.sh
    3520
    

    3.命令返回值

            执行一条命令后,

            $? 值为0表示执行成功,非0则表示执行失败。 

  • 相关阅读:
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    [原]Unity3D深入浅出
    SSH 远程端口转发
    SSH 本地端口转发
    SSH执行远程命令和传送数据
  • 原文地址:https://www.cnblogs.com/snsdzjlz320/p/5597766.html
Copyright © 2011-2022 走看看