Shell编程——特殊变量

在 shell 编程中,有一些特殊变量(有时称为预定义变量或环境变量),这些变量在脚本中可以用来获取有关 shell 环境或传递给脚本的参数等信息。以下是一些常见的 shell 特殊变量:

1. 位置参数变量

这些变量用于访问脚本执行时传递的参数。

  • $0: 当前脚本的名称。
  • $1$9: 脚本传递的第 1 至第 9 个参数。
  • ${10}: 第 10 个及以上的参数,使用大括号括起来。
  • $#: 传递给脚本的参数的个数。
  • $*: 所有传递给脚本的参数,被视为一个单独的字符串。
  • $@: 所有传递给脚本的参数,每个参数被视为独立的字符串(与 $* 类似,但处理多字参数时不同)。
  • "$@": 每个参数都会被双引号括起来,单独处理。
    #!/bin/bash
    
    # 输出当前脚本名称
    echo $0
    
    # 参数 1 到 9 ,{10}及以上
    echo "First argument:$1"
    echo "Second argument:$2"
    echo "Tenth argument:${10}"
    
    # $# 传递给脚本的参数个数
    echo "Number of arguments: $#"
    
    # $* 所有参数作为一个字符串
    echo "All arguments (as a single string): $*"
    
    # $@ 所有参数分别处理
    for arg in "$@"
    do
      echo "Argument: $arg"
    done
    

2. 特殊用途变量

这些变量提供了有关脚本和命令执行状态的信息。

  • $$: 当前 shell 进程的进程 ID(PID)。
  • $!: 最近执行的后台命令的进程 ID(PID)。
  • $?: 最近执行的命令的退出状态(返回值)。
  • $-: 当前 shell 的选项标志,表示使用了哪些命令行选项。
  • $_: 最近执行的命令的最后一个参数,或者是上一个命令的最后一行输出。

3. 环境变量

这些变量影响 shell 的行为,并且可以在子进程中被继承。

  • $HOME: 当前用户的主目录路径。
  • $PWD: 当前工作目录路径。
  • $OLDPWD: 之前的工作目录路径。
  • $PATH: 系统查找可执行文件的路径列表。
  • $SHELL: 当前使用的 shell 程序路径。
  • $USER: 当前登录的用户名。
  • $UID: 当前用户的用户 ID。
  • $IFS: 内部字段分隔符,用于定义 shell 如何识别单词边界(默认为空格、制表符和换行符)。
  • $LANG: 当前语言设置。

这些特殊变量在 shell 脚本编写中非常有用,可以帮助脚本获取必要的上下文信息,并做出动态响应。

 

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值