Shell

Dash 中的 Bash FUNCNAME 等效項

  • February 22, 2016

Bash 可以列印目前函式名:

$ bash -c 'g(){ echo $FUNCNAME; }; g'
g

但是 Dash 不能使用FUNCNAME

$ dash -c 'g(){ echo $FUNCNAME; }; g'

是否可以使用 Dash 訪問目前函式名稱?

使用任何 POSIX shell:

defun() {
 eval "
   $1() {
     FUNCNAME=$1
     $(cat)
   }
 "
}

defun g <<\}
 printf '%s\n' "$FUNCNAME"
}

g

請注意,您不能呼叫defundefun.

引用自:https://unix.stackexchange.com/questions/264934