一、$FUNCNAME、$LINENO、$PWD
- FUNCNAME 表示当前函数的名字,作用范围仅限函数中使用,在函数外无值
- LINENO 表示当前所在脚本中变量出现在的行号
- PWD 表示当前目录, 对应于 pwd命令
debug.sh 内容如下
#!/bin/bash
testa()
{
echo 'func='$FUNCNAME,$LINENO
}
testa
echo 'lineno:'$LINENO
echo 'xx:'$FUNCNAME
echo 'currentPath:'$PWD
执行 ./debug.sh 命令, 输出如下
root@DESKTOP-E81G0GU:/home/zhanghaiyang# bash debug1.sh
func=testa,9
lineno:15
xx:
currentPath:/home/zhanghaiyang
在 testa 函数中 FUNCNAME 变量值是 testa,也即函数名字,在函数外部无值,LINENO 变量无论是在函数中还是函数外,都表示当前所在的行号。
二、$$、$PPID这两个变量依次表示当前进程ID和父进程ID,sleep 20 睡眠语句是为了让执行脚本进程暂缓退出,在另一个终端中验证输出的结果
#!/bin/bash
#set -u
echo 'cur pid:'$$
echo 'parent pid:'$PPID
sleep 20
在当前终端执行