shell内置变量

Shell内置变量详解

shell中内置变量

在Shell脚本中,内置变量(也称为环境变量或特殊变量)是由Shell自动设置和维护的变量,用于存储有关Shell环境、脚本执行状态等信息。以下是一些常见的Shell内置变量:

1. 位置参数

  • $0:当前脚本的文件名。

  • $1$2, ..., $9:传递给脚本或函数的位置参数(第1到第9个参数)。

  • $#:传递给脚本或函数的参数个数。

  • $*:所有位置参数作为一个字符串。

  • $@:所有位置参数作为单独的字符串(通常用于循环中)。

  • $?:上一个命令的退出状态(0表示成功,非0表示失败)。

  • $$:当前Shell进程的进程ID(PID)。

  • $!:最后一个后台运行的进程的PID。

2. 特殊变量

  • $_:上一个命令的最后一个参数。

  • $-:当前Shell的选项标志。

  • $IFS:内部字段分隔符(用于分割字符串的字符,默认为空格、制表符和换行符)。

3. 环境变量

  • $HOME:当前用户的主目录。

  • $PATH:可执行文件的搜索路径。

  • $PWD:当前工作目录。

  • $OLDPWD:上一个工作目录。

  • $USER:当前用户名。

  • $SHELL:当前Shell的路径。

  • $LANG:当前的语言环境。

  • $TERM:当前终端的类型。

  • $PS1:主提示符字符串。

  • $PS2:次提示符字符串(用于多行命令)。

4. 脚本相关

  • $LINENO:当前脚本中的行号。

  • $FUNCNAME:当前函数的名称。

  • $BASH_VERSION:Bash的版本信息(仅适用于Bash)。

  • $RANDOM:生成一个随机数。

5. 其他

  • $SECONDS:脚本已经运行的秒数。

  • $REPLYread命令的默认变量(如果没有指定变量名)。

示例

bash

复制

#!/bin/bash

echo "脚本名称: $0"
echo "第一个参数: $1"
echo "参数个数: $#"
echo "所有参数: $*"
echo "上一个命令的退出状态: $?"
echo "当前进程ID: $$"
echo "当前用户: $USER"
echo "当前目录: $PWD"

注意事项

  • 这些变量在不同的Shell(如Bash、Zsh、Ksh等)中可能会有一些差异。

  • 某些变量(如$RANDOM$SECONDS)是Bash特有的,可能在其他Shell中不可用。

例如脚本:

#!/bin/bash

for i in $(seq 1 $#);do
  echo "第$i个参数 ${!i}"
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值