Shell特殊变量:Shell $#、$*、$@、$?、$$

╰半夏微凉° 2022-12-27 07:17 316阅读 0赞
Shell 特殊变量及其含义


































变量 含义
$0 当前脚本的文件名。
$n(n≥1) 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1,第二个参数是 $2。
$# 传递给脚本或函数的参数个数。
$ 传递给脚本或函数的所有参数。
$@ 传递给脚本或函数的所有参数。当被双引号“ “包含时,$@ 与 $ 稍有不同,我们将在《Shell $*和$@的区别》一节中详细讲解。
$? 上个命令的退出状态,或函数的返回值,我们将在《Shell $?》一节中详细讲解。
$$ 当前 Shell 进程 ID。对于 Shell 脚本,就是这些脚本所在的进程 ID。

下面我们通过两个例子来演示。

1) 给脚本文件传递参数

编写下面的代码,并保存为 test.sh:

  1. #!/bin/bash
  2. echo “Process ID: $$”
  3. echo “File Name: $0”
  4. echo “First Parameter : $1”
  5. echo “Second Parameter : $2”
  6. echo “All parameters 1: $@”
  7. echo “All parameters 2: $*“
  8. echo “Total: $#“

运行 test.sh,并附带参数:

  1. [mozhiyan@localhost demo]$ . ./test.sh Shell Linux
  2. Process ID: 5943
  3. File Name: bash
  4. First Parameter : Shell
  5. Second Parameter : Linux
  6. All parameters 1: Shell Linux
  7. All parameters 2: Shell Linux
  8. Total: 2

2) 给函数传递参数

编写下面的代码,并保存为 test.sh:

  1. #!/bin/bash
  2. #定义函数
  3. function func(){
  4. echo “Language: $1”
  5. echo “URL: $2”
  6. echo “First Parameter : $1”
  7. echo “Second Parameter : $2”
  8. echo “All parameters 1: $@”
  9. echo “All parameters 2: $*“
  10. echo “Total: $#“
  11. }
  12. #调用函数
  13. func Java http://c.biancheng.net/java/

运行结果为:
Language: Java
URL: http://c.biancheng.net/java/
First Parameter : Java
Second Parameter : http://c.biancheng.net/java/
All parameters 1: Java http://c.biancheng.net/java/
All parameters 2: Java http://c.biancheng.net/java/
Total: 2

发表评论

表情:
评论列表 (有 0 条评论,316人围观)

还没有评论,来说两句吧...

相关阅读

    相关 shell中的特殊变量

    shell中的特殊变量: $0:当前脚本的文件名 $num:num为从1开始的数字,$1是第一个参数,$2是第二个参数,$\{10\}是第十个参数 $\:传入脚本的参

    相关 Shell特殊变量$

    shell特殊变量 1)$\  所有参数列表。如"$\"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。  2)$@  所有参数列表。如"