shell中的特殊变量
作者:redrose2100   类别:    日期:2022-11-16 16:55:23    阅读:986 次   消耗积分:0 分

【原文链接】shell中的特殊变量

1 特殊变量 $n

$n,n为数字,n为0-9,$0 代表脚本名称,$1-$9代表第一到第九个参数,9以上的参数需要使用大括号,如${10}表示第10个参数,比如如下,创建test.sh脚本文件,脚本如下,即打印脚本名本身,以及第一个、第二个和第三个参数

  1. #!/bin/bash
  2. echo $0
  3. echo $1
  4. echo $2
  5. echo $3

用如下的方式执行,可以看出符合我们的预期

  1. $ bash test.sh hahah 2 100
  2. test.sh
  3. hahah
  4. 2
  5. 100
  6. $

2 特殊变量 $

$# 为获取所有输入参数的个数,如下,在test.sh脚本文件中写入如下内容,即打印参数的个数

  1. #!/bin/bash
  2. echo $#

使用如下命令执行,可以看出,当不输入参数时,打印的是0,当输入三个参数时则打印3

  1. $ bash test.sh
  2. 0
  3. $ bash test.sh 111 222 333
  4. 3
  5. $

3 特殊变量$*

$ 作用是偶去命令行中所有的参数,$ 把所有的参数看成一个整体,如下test.sh代码即为打印$*的内容

  1. #!/bin/bash
  2. echo $*

执行结果如下,可以看出将执行时输入的三个参数都打印出来了

  1. $ bash test.sh 111 222 333
  2. 111 222 333
  3. $

4 特殊变量$@

$@ 作用是这个变量代表命令行中所有的参数,不过$@把每个参数区分对待,如下,在test.sh中编写代码,打印$@

  1. #!/bin/bash
  2. echo $@

执行结果如下,可以看出此时同样将三个参数都打印出来了

  1. $ bash test.sh 111 222 333
  2. 111 222 333
  3. $

5 特殊变量$?

$? 作用是获取最后一次执行的命令的返回状态,如果这个变量的值为0,表示上一个命令执行成功,如果这个变量不是0,则证明上个命令执行错误了

如下,当执行ls正确后,$?的值为0,而当输入一个错误的命令时,此时$?的值是127

  1. $ ls
  2. test.sh
  3. $ echo $?
  4. 0
  5. $ lsss
  6. -bash: lsss: command not found
  7. $ echo $?
  8. 127
  9. $
始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/445
下一篇: shell中的运算符
个人成就
  • 2022年 : 371 篇 
  • 2023年 : 211 篇 
  • 2024年 : 31 篇 
  • 2025年 : 0 篇 
  • 博客总数: 613 
  • 阅读总量: 663034 
测试开发技术全栈公众号
DevOps技术交流微信群