• shell变量的使用


    转载请标明http://www.cnblogs.com/winifred-tang94/

    shell环境中变量有三种类型:

    a、  环境变量;可以在shell脚本中直接利用“$环境变量名称”的形式引用。

    b、  用户自定义变量;不需要事先定义,通常情况下,使用变量的时候直接对变量赋初值。变量名称=变量初始值(注意:变量名称的要求——首字符必须是字母,可以用下划线,但是不能有标点符号和空格,不能使用shell里的关键字)

    c、  系统全局变量;代表了特定含义,不能被用户修改。一般来说,主要的全局变量包括以下几个:

    $#:执行shell脚本时,命令行参数个数,不包括脚本本身。

    $?:执行上一条shell命令的返回值(退出状态,大部分命令执行成功返回0,失败返回1,不过也有一些其他命令返回其他值标识其他错误)。

    $0:shell脚本程序自身的名称。同时,$1代表shell命令行中第一个参数,$2代表第二个参数,$3代表第三个参数,以此类推。

    $*:传递给脚本或函数的所有参数。

    $$:当前shell进程ID,就是当前脚本所在的进程ID。

    要在脚本中使用变量则是利用“$变量名称”的方法。

    Eg.创建一个脚本计算两数之和

    值得注意的一点:在使用expr进行运算时,运算符两边要记得加空格。

    结果是:

    一开始出错如下:

    原因:这个脚本文件需要除了脚本本身以外的参数,运行脚本的时候没有输入参数。

    $* 和 $@的区别:

    $* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。 但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

    Eg.

  • 相关阅读:
    jq 比较五获取结构树的位置 eq() 或者parent
    jq 笔记四 end的用法
    jq 笔记三 find的用法
    jq 笔记二filter()用法
    jq 笔记一 选择器中的逗号
    Linux 笔记五 搜索命令的命令
    linux 笔记四 文件搜索(locate)
    使用ansible时显示Failed to connect to the host via ssh
    linux音频解码软件ffmpeg的安装
    centos服务器jenkins安装配置
  • 原文地址:https://www.cnblogs.com/winifred-tang94/p/5823988.html
Copyright © 2020-2023  润新知