既存のエイリアスセットを見て、すべての内容を知らせるエイリアス( "ggg")が欲しいです。最初G.私はg *エイリアスがたくさんあります:)
私はこれを試しましたが、alias ggg='alias | grep ^g'
私に何の出力(またはエラー)も与えません。私が最も確信していないのは、「行を始める」文字です。
答え1
zshでは
alias ggg='alias -m "g*"'
ggg
または、それ自体が印刷されないように関数を使用してください。
ggg() alias -m 'g*'
「エイリアス」の出力をgrepすることもできますが、複数行のエイリアスがあると正しく機能しない可能性があります。
Bashの場合は、次のトリックを使用できます。
(
alias() { [[ $1 = g* ]] && builtin alias "${1%%=*}"; }
eval "$(builtin alias)"
)
アイデアは、bashがalias
同じエイリアスを再現するために解釈できるいくつかのテキストを出力することです。たとえば、次のようになります。
$ alias
alias a='foo'
alias goo='gar
baz
alias gro=grar'
alias
だから私たちはそれを評価しましたが、 "g"で始まる文字列が渡されたときに間違いだけを呼び出す関数でオーバーライドした後。alias
答え2
エイリアスの出力はで始まる行ですalias
。したがって、別名は次のようにする必要があります。
alias ggg='alias | grep "^alias g"'
答え3
それはシェルによって異なります。 bashを使用している場合、@Dennisは完全に正しいです。なぜなら、zsh
それを有効にするともう一つの問題になる可能性があるからです。EXTENDED_GLOB
この場合、^
シェルはそれを解釈して引用する必要があります。つまり:
alias ggg='alias | grep "^g"'