Bashプロンプトでチルダ〜を避ける方法は?


12

PS1変数内に表示されるチルダを削除したいと思います。

私の現在のPS1文字列:

PS1="\h:\w\n$"

プロンプトは次のようになります。

lnx-hladky:/tmp/plugtmp
$

$ HOMEディレクトリがチルダとして表示されるのは好ましくありません。これは回避できますか?

問題を引き起こします、例:

lnx-hladky:~/DOC
$  

ドキュメントは言う:

\w : the current working directory, with $HOME abbreviated with a tilde 
\W: the basename of the current working directory, with $HOME abbreviated with a tilde

$ HOMEがチルダで省略されるのを避ける可能性はありますか?

私は1つの方法を見つけましたが、それは複雑すぎると感じています:

PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$

誰でもより良い解決策を提案できますか?プロンプトを表示するためだけに多くのコマンドを実行しても大丈夫ではないと感じています。(日付、whoami、ホスト名、pwd)。


この例でチルダが引き起こす「問題」は何ですか?
-JBallin

回答:


11

bashはプロンプトで展開を実行します。必ず逃げてください。

PS1='\h:$(pwd)\n$'

それが私の質問に答えます。私はそのような可能性があることを知りませんでした。ありがとう、イグナシオ!
ジルカ

2
@Jirka:「PS1 = '\ h:$ PWD \ n $'」も使用できます。
追って通知があるまで一時停止します。

1
Jirkaのソリューションはpwd、すべてのプロンプトで実行されます。デニスのソリューションは、環境変数PWDをフェッチするだけで、はるかに安価です。
ステファンゴーリチョン

2
pwdbashビルトインです。証拠がない${PWD}場合よりも「ずっと安い」という主張$(pwd)
ビネ14

1
@anxieux:あなたは、単一引用符ではなく二重引用符で引用しなければならない
weberjn

0

例で示したほど多くのコマンドを実行する必要はありません。bashあなたが言及したほとんどのことへのショートカットを提供します。

あなたの例:

PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$

次のように書き換えることができます。

PS1='\e[4;35m\t\e[24m\u@\h:\w\e[m\n'

ここ\tで、時刻(24時間形式)、\u現在のユーザー名、「\ h」はホスト名を示します- bashマニュアルページでは、これらとプロンプトで使用可能なその他のエスケープについて説明しています。

~フルパスに展開しても、コマンドを実行しているユーザーがわからず、ユーザーを定期的に切り替えている場合、ファイルのアクセス許可または実行可能アクセス許可に問題が生じる可能性があります。


こんにちは、私の意図は\ wをFULL $ HOMEパスを含むフルパスに置き換えることでした。Ignacioのおかげで、私はPS1 = '\ e [4; 35m \ t \ e [24m \ u @ \ h:$(pwd)\ e [m \ n $'を使用して問題を解決しました:-)
ジルカ

完璧-私\uは自分が誰であるかを知るために含めるのが好きです。イグナシオの回答を受け入れることを忘れないでください。質問の左側にあるチェックボックスをクリックしてください。
ダグ・ハリス

ヒントをありがとう。このフォーラムは初めてです。それは素晴らしい場所です。
ジルカ

\ u @ \ h:$ PWD(コロンに注意)はscpの入力として使用できます
weberjn

0

私は.bash_profileファイルで以下の設定を使用しています

$ export PS1='\e[1;34m\D{%T %d.%m.%Y} \[\033[00;39m\]\u\[\033[00;32m\]@$IP:\[\033[00;33m\]$(pwd)/\n\\$\[\033[00m\] '

21:40:08 14.12.2017 vmware@10.112.202.228:/home/vmware/Downloads/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.