問題タブ [ps1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - PS1を拡張する方法は?
複数のディレクトリ( fgit )で同じコマンドを実行するシェルスクリプトがあります。ディレクトリごとに、現在のプロンプトとそこで実行されるコマンドを表示したいと思います。デコードされた(展開された)文字列に対応する文字列を取得するにはどうすればよいPS1
ですか?たとえば、私のデフォルトのPS1は
username@hostname:/path$
そして、できれば(必ずしもそうとは限りませんが)素敵な色で、結果のプロンプトをエコーしたいと思います。Bashのマニュアルをざっと見てみると、明確な答えは明らかにならずecho -e $PS1
、色を評価するだけです。
git - bashPS1の動的要素
gitを使用するときにbashプロンプトをカスタマイズするために、〜/.localshファイルに次のものを入れました。
基本的に、現在のブランチをターミナルに表示したいと思います。gitkツールは、背景が緑色で前景が黒色のブランチを表示するので、これを実行しようとしています。
私が持っているものは機能しますが、キーボードの上矢印を押して前のコマンドをスクロールバックすると、上書きされます。
これは、カラーシーケンスを[\e[0m]で終了しないときの前に起こったことです。getgitbranch関数を呼び出したために、これが発生しています。プロンプトの長さがわからない端末と関係があると思います。
だから、ここに質問があります...上矢印を使用するときにbashプロンプトで動的要素を正しく使用し、それを無駄にしないようにするにはどうすればよいですか?
git - bashプロンプトが更新されないのはなぜですか?
私はgitを初めて使用し、現在のgitブランチを既存のプロンプトに追加しようとしています。これは次のように定義されています。
(ファイルを再度調達して.bashrc
)試してみたところ、機能しているように見えましたが、別のブランチに移動しても更新されませんでした。$(__git_ps1)
がキャッシュされていないことを確認するにはどうすればよいですか?
svn - 「svn info」を取得して、svnフォルダーにない場合に文句を言わないようにします
コマンドラインの色を制御するために、PS1変数のbashスクリプトをいじっています。私がやりたいことの 1 つは、svn リポジトリにいる場合、ローカル フォルダー名の後に "(svn)" を付けることです。この atm を実行しようとしている方法は、PS1 を設定するときに呼び出す .bashrc のこの関数を使用することです。
私がsvnフォルダーにいる場合、これは正常に機能します。ただし、非 svn フォルダーに移動すると、"svn: '.' is not a working copy"
明らかに迷惑なこの苦情がトリガーされます。私は bash スクリプトの専門家ではありませんが、これを停止する方法を知っている人はいますか?
ありがとう、マックス
.svn ディレクトリを探すという、svn フォルダーにいるかどうかを確認する別の方法を考えましたが、svn 情報はどういうわけかきれいに見えます。さらに、エラーメッセージを停止する方法、またはbashスクリプトで非表示にする方法に興味があります。
bash - コマンド ライン プロンプトの現在のディレクトリを短くするにはどうすればよいですか?
私は Ubuntu を使用していますが、深いディレクトリ階層で作業しているときに、bash で長いプロンプトが表示されることにうんざりしています。そこで、PS1 を微調整して、次の方法で作業ディレクトリの部分を短くしたいと思います。
現在私は持っています:
したい:
len($PWD) が所定のしきい値を超えると、切り捨てが発生します。最初のパス コンポーネントと少なくとも 1 つの最後のパス コンポーネントを常に保持したいと考えています。次に、スペースが許す限り、右からコンポーネントを追加します。
これは私が現在持っているものです。動作しますが、1) 最初のパス コンポーネントを保持しません。2) 境界での切断パスを考慮しません。
そして結果:
前もって感謝します!
bash - bash: 位置エコーを行う派手な PS1 による行折り返し
私のログインスクリプトには、端末の右上に $foo を保持するこのようなものがあります。動作しますが、注意が必要です。非常に長いコマンドを入力すると、折り返されません。(まあ、それが 2 行を超える場合は折り返されますが、それが理にかなっていれば、2 行目が 1 行目を上書きします。)
$POS で bash をラップする (改行を挿入する) 方法を知っている人はいますか? それとも $COLUMNS でさえ?
bash - パスの Bash プロファイル設定が機能しない - PS1
次の bash プロファイル設定ファイルを作成しました。
何らかの理由で、newPWD の取得が機能していません。これは環境内に存在します (echo で出力できます) が、コマンド ライン プロンプトには追加されません。常に空の文字列が追加されます。したがって、出力例は次のとおりです。
アイデアはありますか?
PS。これが私の解決策です:
bash - bashPS1プロンプトの短い日付
PS1の構成で\dを使用して、長い日付を表示できます。5月18日火曜日ですが、たとえば2012年5月18日などの形式で表示するにはどうすればよいですか。
macos - Bash親シェルでのPS1プロンプトの変更
スクリプトを使用して、親のBashシェルのプロンプトを変更しました。私は以下を試しました:
これにより、スクリプトが実行されているサブシェルのプロンプトが変更されますが、親シェルのプロンプトを変更するためにどのコマンドを使用しますか。何か案は?
bash - bash:PS1、PS2、...を評価する方法は?
重複の可能性:
エコー拡張PS1
bashスクリプト内から「評価」する方法はありPS1
ますか?PS2
現在のすべての要素を取得するために代替手段を使用することはできますが、PS1
これらの代替手段を使用する代わりに、その定義を再利用できるようにしたいと考えています。
例えば、
スクリプトで「代替手段」列を使用することはできますが、使用したくありません。私PS1
の場合、たとえば、ターミナルエスケープシーケンスを介して太字の青色を使用します。これは、を評価することで簡単に再利用できるようにしたいと考えていますPS1
。