このエイリアスは、次の場合は正しく機能します/bin/csh
が、次の場合は機能しません/bin/bash
。
alias cd='chdir !* && setprompt; clear; ls -F'
基本的に私はcd
どんなディレクトリとls
色も欲しい。
答え1
それが何であるかはよくわかりませんが、setprompt
エイリアスinはエイリアスのbash
ようなcsh
パラメータを受け入れません(使用!*
)。シェルのエイリアシングはbash
エイリアシングよりもはるかに簡単で、コマンドラインのデフォルトcsh
のテキスト置換ツールと同等の機能のみを提供します。
代わりに、ユーティリティをオーバーロードする短いシェル関数を書くことができますcd
。
cd () {
command cd "$1" && clear && ls -F
}
または一行で、
cd () { command cd "$1" && clear && ls -F; }
このシェル関数宣言は、で別名を宣言するたびに表示されますbash
(おそらく~/.bashrc
)。
関数で利用可能な1つのパラメータを使用してください"$1"
。command cd
これを引数として使用します。command cd
代わりにcd
シェル関数を再帰的に呼び出すのを避けるために使用します。
このcd
コマンドはディレクトリを変更し、成功すると呼び出され、clear
ディレクトリリストを作成するために使用されますls -F
。