加入收藏 | 设为首页 | 会员中心 | 我要投稿 海洋资讯信息网_我爱站长网 (https://www.haijunwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

Unix / Linux – 特殊变量

发布时间:2022-10-13 15:35:11 所属栏目:Unix 来源:
导读:  Unix / Linux – 特殊变量

  在本章中,我们将详细讨论 Unix 中的特殊变量。在我们之前的一章中,我们了解在变量名中使用某些非字母数字字符时如何小心。这是因为这些字符用于特殊 Unix 变量的名称。
  Unix / Linux – 特殊变量
 
  在本章中,我们将详细讨论 Unix 中的特殊变量。在我们之前的一章中,我们了解在变量名中使用某些非字母数字字符时如何小心。这是因为这些字符用于特殊 Unix 变量的名称。这些变量是为特定功能保留的。
 
  例如,$字符表示当前 shell 的进程 ID 号或 PID –
 
  $echo $$
  上面的命令写入当前 shell 的 PID –
 
  29949
  下表显示了一些可以在 shell 脚本中使用的特殊变量 –
 
  Sr.No.变量和描述
 
  1
 
  $0
 
  当前脚本的文件名。
 
  2
 
  $n
 
  这些变量对应于调用脚本的参数。这里n是一个对应于参数位置的正十进制数(第一个参数是 $1,第二个参数是 $2,依此类推)。
 
  3
 
  $#
 
  提供给脚本的参数数量。
 
  4
 
  $*
 
  所有的参数都是双引号的。如果脚本接收两个参数,则 $* 相当于 $1 $2。
 
  5
 
  $@
 
  所有参数都单独用双引号引起来。如果脚本接收两个参数,则 $@ 相当于 $1 $2。
 
  6
 
  执行的最后一个命令的退出状态。
 
  7
 
  $$
 
  当前shell的进程号。对于 shell 脚本,这是它们正在执行的进程 ID。
 
  8
 
  $!
 
  最后一个后台命令的进程号。
 
  命令行参数
 
  命令行参数 $1, $2, $3, …$9 是位置参数, $0 指向实际的命令、程序、shell 脚本或函数, $1, $2, $3, …$9 作为参数命令。
 
  以下脚本使用与命令行相关的各种特殊变量 –
 
  #!/bin/sh
  echo "File Name: $0"
  echo "First Parameter : $1"
  echo "Second Parameter : $2"
  echo "Quoted Values: $@"
  echo "Quoted Values: $*"
  echo "Total Number of Parameters : $#"
  这是上述脚本的示例运行 –
 
  $./test.sh Zara Ali
  File Name : ./test.sh
  First Parameter : Zara
  Second Parameter : Ali
  Quoted Values: Zara Ali
  Quoted Values: Zara Ali
  Total Number of Parameters : 2
  特殊参数 $* 和 $@
 
  有一些特殊参数允许一次访问所有命令行参数。$*和$@ 的作用相同,除非它们用双引号“”括起来。
 
  这两个参数都指定了命令行参数。但是,“$*”特殊参数将整个列表作为一个参数,中间有空格,“$@”特殊参数将整个列表作为一个参数UNIX 特殊变量,并将其分隔为单独的参数。
 
  我们可以编写如下所示的 shell 脚本,以使用 $* 或 $@ 特殊参数处理未知数量的命令行参数 –
 
  #!/bin/sh
  for TOKEN in $*
  do
     echo $TOKEN
  done
  这是上述脚本的示例运行 –
 
  $./test.sh Zara Ali 10 Years Old
  Zara
  Ali
  10
  Years
  Old
  注意– 这里do…done是一种循环,将在后续教程中介绍。
 
  退出状态
 
  在$?变量表示上一个命令的退出状态。
 
  退出状态是每个命令在完成时返回的数值。通常,大多数命令在成功时返回 0 退出状态,如果不成功则返回 1。
 
  由于特定原因,某些命令会返回额外的退出状态。例如,某些命令会区分错误类型,并会根据特定的故障类型返回各种退出值。
 
  以下是成功命令的示例 –
 
  $./test.sh Zara Ali
  File Name : ./test.sh
  First Parameter : Zara
  Second Parameter : Ali
  Quoted Values: Zara Ali
  Quoted Values: Zara Ali
  Total Number of Parameters : 2
  $echo $?
  0
  $
 
 

(编辑:海洋资讯信息网_我爱站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!