私はzsh
いくつかのシェルスクリプトでいくつかのユーティリティシェル関数を使用して定義しています~/.zshrc
。 1つの機能は次のとおりです。
function k.pstree.n {
if [ "$1" != "" ]
then
pstree -p | grep -C3 "$1"
else
printf " Please specify the name of the process you want to show!\n"
fi
}
このシェル関数のコードを印刷する方法は?
検索とgrepを次のように考えることができます。
find $(pwd) -name "*sh*" -type f -printf "\"%p\"\n" | xargs grep -C5 "k.pstree.n"
しかし、これは私が場所を大まかに知っていると仮定していますが、ここではそうではありません。
答え1
この目的のためのfunctions
組み込みコマンドがあります。zsh
functions k.pstree.n
たとえば、私のpreexec
機能は次のとおりです。
$ functions preexec
preexec () {
local cmd=${1:-}
cmd=${cmd//\\/\\\\}
[[ "$TERM" =~ screen* ]] && cmd="S $cmd"
inf=$(print -Pn "%n@%m: %3~")
print -n "\e]2;$cmd $inf\a"
cmd_start=$SECONDS
}
あるいは、whichを使用することの利点は、andでも機能できることです。typeset -fp function_name
ksh
bash
yash
ではzsh
、関数定義は$functions
特殊な連想配列にもあります(キーは関数名で、値は関数本文です)。
答え2
使用できるコマンドは何ですか?
$ which k.pstree.n