2017-03-06 14 views
1
cd = 'cd !* ;set prompt="! $host `dirs` % "' 

このエイリアスは、私がよく使用するRed Hat Enterprise Linuxサーバー上にあり、私にとって何ができるのか分かりません。何か案は?Red Hat Linuxではこのエイリアスは何をしますか?

+4

Bash to meのようには見えません。 –

+0

cdコマンドはbashシェル内で動作しませんか? – user2602925

+1

はい、Bash *には 'cd'が組み込まれていますが、ここにはスペースがあり、' set'は私がBashで使っている方法とは違って使います。 –

答えて

0

私はそれがディレクトリを変更し、プロンプトで前のディレクトリを表示するためのものだと思う。 !*は、最初の単語を除いた前のコマンドを意味するbash履歴展開です。例えば。前のコマンドがcd projectの場合、!*projectです。履歴拡張セクションのman bash、具体的にはhereを参照してください。

dirsは単にディレクトリのスタックを表示し、bashビルトインです(詳細はリンクを参照してください)。

しかし、標準のbashで、あなたの代わりにset prompt=export PS1=...を使用したいので、おそらくエイリアスの作者は、それが例えばcshいうよりbash、で使用するためのものhereを参照してください。履歴拡張!*は、同じセマンティクス、例えば、 tcshについてはhereを参照してください。

+0

少なくとも私が知る限り、通常のcdコマンドとは異なる動作をしているようには見えません。 – user2602925

+0

私はRHELホストにアクセスできないが、標準のbashでは、 'set prompt ='の代わりに 'export PS1 = ...'を使うだろう。多分それがあなたに変化を見せない理由です。 – dimid

+2

私はエイリアスの作者が 'bash'ではなく' csh'で使われることを意味していたと思います。 [ここ](http://superuser.com/questions/399047/customizing-csh-prompt)を参照してください。 – dimid

0

cshエイリアシングでは、!*はコマンドが受信した入力です。
alias + emacs \!* &と実行中の+ somefileは、emacsを使っていくつかのファイルを開き、それをバックグラウンドに移動します。
これは、ディレクトリ名を変更して(!*)、ディレクトリ(ホスト名、パス)(pwd)と%

にプロンプ​​トを設定します

私のエイリアス行にある\に注意してください。エイリアス内の特殊文字をエスケープして、注意を払う必要があります。this

関連する問題