cd = 'cd !* ;set prompt="! $host `dirs` % "'
このエイリアスは、私がよく使用するRed Hat Enterprise Linuxサーバー上にあり、私にとって何ができるのか分かりません。何か案は?Red Hat Linuxではこのエイリアスは何をしますか?
cd = 'cd !* ;set prompt="! $host `dirs` % "'
このエイリアスは、私がよく使用するRed Hat Enterprise Linuxサーバー上にあり、私にとって何ができるのか分かりません。何か案は?Red Hat Linuxではこのエイリアスは何をしますか?
私はそれがディレクトリを変更し、プロンプトで前のディレクトリを表示するためのものだと思う。 !*
は、最初の単語を除いた前のコマンドを意味するbash履歴展開です。例えば。前のコマンドがcd project
の場合、!*
はproject
です。履歴拡張セクションのman bash
、具体的にはhereを参照してください。
dirs
は単にディレクトリのスタックを表示し、bashビルトインです(詳細はリンクを参照してください)。
しかし、標準のbashで、あなたの代わりにset prompt=
のexport PS1=...
を使用したいので、おそらくエイリアスの作者は、それが例えばcsh
いうよりbash
、で使用するためのものhereを参照してください。履歴拡張!*
は、同じセマンティクス、例えば、 tcsh
についてはhereを参照してください。
少なくとも私が知る限り、通常のcdコマンドとは異なる動作をしているようには見えません。 – user2602925
私はRHELホストにアクセスできないが、標準のbashでは、 'set prompt ='の代わりに 'export PS1 = ...'を使うだろう。多分それがあなたに変化を見せない理由です。 – dimid
私はエイリアスの作者が 'bash'ではなく' csh'で使われることを意味していたと思います。 [ここ](http://superuser.com/questions/399047/customizing-csh-prompt)を参照してください。 – dimid
cshエイリアシングでは、!*
はコマンドが受信した入力です。
alias + emacs \!* &
と実行中の+ somefile
は、emacsを使っていくつかのファイルを開き、それをバックグラウンドに移動します。
これは、ディレクトリ名を変更して(!*)、ディレクトリ(ホスト名、パス)(pwd
)と%
私のエイリアス行にある\
に注意してください。エイリアス内の特殊文字をエスケープして、注意を払う必要があります。this
Bash to meのようには見えません。 –
cdコマンドはbashシェル内で動作しませんか? – user2602925
はい、Bash *には 'cd'が組み込まれていますが、ここにはスペースがあり、' set'は私がBashで使っている方法とは違って使います。 –