実行できるように、bashエイリアススクリプトにパラメータを追加したいと思います。
alias -p l='ls -l'
私は.zshrcに永久に追加されます。しかし、シェルスクリプトのエイリアスが見つかりません。
私はそれを試しましたが、うまくwhereis alias
いきませんでした。man alias
表示エイリアスにもエントリはありません。
入ってみましたが/usr/bin, /usr/share/local/bin
運がありませんでした。場所を教えてくださっていますか?
編集:私はまた、あなたが可能なすべてのパスを見つけようとしました:ls $(echo $PATH| tr ':' '\n') | grep alias
ベストアンサー1
alias
組み込みコマンドなので、どのファイルにもスクリプトや関数として表示されません。このtype
コマンドは以下を表示します。
$ type alias
alias is a shell builtin
しかし、まだ上書きできます。同じ名前の関数は、組み込みbuiltin
関数を使用して明示的に呼び出されない限り、組み込み関数をマスクします。
したがって、次のように動作する必要があります。
alias() {
if [ "$1" = "-p" ]; then
echo "-p was given";
shift;
fi;
builtin alias "$@";
}
同じエイリアス割り当てをファイルに印刷するには、シェルへの入力として使用できるように正しく引用する必要があります。
shift
次のことが可能ですが(関数の後に追加されます)、テストしてみてください。printf "alias %q\n" "$@" >> ~/my.alias.file
Bash対Zshの質問に関しては、上記の方法は両方に効果があると思いますが、私はZshの専門家ではありません。
ちなみに、Bashにはすでにオプションがalias
あることに注意してください。-p
help alias
Options:
-p print all defined aliases in a reusable format
alias
パラメータのないデフォルトの動作は、再利用可能な形式ですべてのエイリアスを印刷することであるため、これがどの用途に使用されるのかわかりません。