shell 脚本中常用的内置变量

本文详细介绍了Bash shell脚本中的常见内置变量,如$FUNCNAME、$LINENO、$PWD用于调试,$$、$PPID表示进程ID,$0到$9及 $#表示命令行参数,$*和$@处理位置参数,$?记录命令退出状态,$IFS定义单词边界,以及$HOME等环境变量。理解并运用这些变量能提升shell脚本编写效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Bash 解释器中,内置了许多变量,这些变量的功能是解释器自带的,我们在编写shell脚本时如果能灵活的使用它们,对脚本的编写效率以及差错大有帮助, 下面一一介绍这些变量

$FUNCNAME、$LINENO、$PWD

FUNCNAMELINENO变量经常用于脚本的调试

FUNCNAME表示当前函数的名字,作用范围仅限函数中使用,在函数外无值

LINENO表示当前所在脚本中变量出现在的行号

PWD表示当前目录, 对应于 pwd命令

现有个脚本 a.sh内容如下

  1 #!/bin/bash
  2
  3 
  4 testa()
  5 {
  6  echo 'func='$FUNCNAME,$LINENO
  7 }
  8 
  9 
 10 testa
 11 
 12 echo 'lineno:'$LINENO
 13 echo 'xx:'$FUNCNAME
 14 echo 'curpath:'$PWD

执行 ./a.sh命令, 输出如下

[tt@ecs-centos-7 ~]$ ./a.sh 
func=testa,6
lineno:12
xx:
curpath:/home/tt

testa函数中 FUNCNAME变量值是 testa,也即函数名字,在函数外部无值

LINENO变量无论是在函数中还是函数外,都表示当前所在的行号

$$、$PPID

这两个变量依次表示当前进程ID和父进程ID

现有 a.sh脚本,内容如下

sleep 20睡眠语句是为了让执行脚本进程暂缓退出,在另一个终端中验证输出的结果

#!/bin/bash
#set -u

echo 'cur pid:'$$
echo 'parent pid:'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值