私は通常、bashrc に次の単純なエイリアスを持っています:
alias g="grep --color=always --exclude-dir=\*.svn\*"
しかし、今は GNU grep 2.5 しかインストールされていないシステムで作業する必要があるので、--exclude-dir
議論の余地はありません。
今、私は次のようなものが必要です:
alias g="grep --color=always $1 $2 | grep -v .svn"
もちろん、引数はエイリアスの末尾に追加されます。$1 と $2 は、強い引用符が付いている場合でも、エイリアスが呼び出されたときではなく、エイリアスが作成されたときに解析されます。
追加のスクリプトや関数に頼らずにこれを解決できますか?
答え1
いいえ、できません。bash マニュアルには次のように記載されています。
`csh' のように、置換テキストで引数を使用するメカニズムはありません。引数が必要な場合は、シェル関数を使用する必要があります (*シェル関数:: を参照)。
関数はこれに適したもので、エイリアスと同じくらい簡単に記述できます。この場合、
function g () { grep --color=always "$1" "$2" | grep -v .svn ; }