如何在Bash中打印函数定义?

Oma*_*ada 59 bash

我已经定义了一些不同的功能.bash_profile.我通常记得函数的名称,但想在运行之前快速查看代码.

在我,.bash_profile我有以下内容:

gpm () {
  echo "git pull origin master"
  git pull origin master
}
Run Code Online (Sandbox Code Playgroud)

现在我想在Bash中运行这样的东西:

$ <something> gpm
Run Code Online (Sandbox Code Playgroud)

结果预期:不执行该功能只打印出功能定义本身.

Sor*_*gal 81

简单地说:

type gpm
Run Code Online (Sandbox Code Playgroud)

你会被告知这gpm是一个功能并显示其定义.使用help type的用法.

  • 虽然“declare”通常更适合脚本处理,但对于频繁使用的命令行,我更喜欢“type”,因为我只有 &lt;type&gt; 四个字母! (2认同)

gle*_*man 58

declare -f gpm将只打印函数的函数定义gpm而不包含其他文本.

  • +1 - 比'type`更好,因为它不打印"gpm是一个函数"行. (12认同)
  • @hlfcoding:你为什么这么认为?它是一个内置的shell,甚至Mac OS附带的古老版本的bash都有它. (3认同)
  • 注意:在`ksh`和kornshell克隆中,`typeset`表示执行与`declare`相同的操作. (2认同)