2 つのコマンドが必要です。最初のコマンドはプロンプトを$␣
またはに減らします#␣
。これはlong_prompt
、プロンプトをデフォルトバージョンにリセットするコマンドを実行するまで、現在のシェルで永続的でなければなりません。
short_prompt
コマンドスクリプトは次のとおりです。
if [ $(id -u) = 0 ]; then
PS1='\[\033[01;34m\]#\[\033[00m\] '
else
PS1='\[\033[01;34m\]\$\[\033[00m\] '
fi
(ご覧のように、管理者シェルとユーザーシェルの異なるプロンプトを尊重します。)
このスクリプトを次のように取得したとき:
$ . short_prompt
すべてが期待どおりに機能しますが、これを行うには、次のようにディレクトリにあるか、フルパスshort_prompt
名を指定する必要があります。
$ . /data/system/bin/short_prompt
/usr/local/bin
このコマンドをどこからでもアクセスできるようにする方法(たとえば、パスディレクトリの1つへのソフトリンクを作成して)を理解し、次のように入力する方法がわからないようです。
$ short_prompt
または
$ long_prompt
export
私は前に2行を追加しようとしましたが、PS1='...'
そのうちの1つも機能しませんでした。
答え1
実行中のシェルのPS1に影響を与える唯一の方法は、コードを取得することです。
この問題を解決する方法はいくつかあります。
/home/user/bin にスクリプトを挿入します。
実行可能なスクリプト名を指定し
short_prompt
ます/home/user/bin
。#!/bin/bash . /data/system/bin/short_prompt
これにより実行が簡単になります。
$ショートプロンプト
エイリアスを指定してください
$ alias short_prompt='. /data/system/bin/short_prompt'
実行は次のとおりです
$ short_prompt
使用
~/.bashrc
:コードを「~/.bashrc」に関数として配置します。
short_prompt(){ PS1='\[\033[01;34m\]\$\[\033[00m\] ' }
呼び出し方法は次のとおりです。
$ short_prompt
答え2
スクリプトをディレクトリに配置すると、PATH
Bashはsource
それを使用してソースのスクリプトを見つけます。これは変わることができますshopt sourcepath
しかし、デフォルトではオンになっています。
別のオプションは、スクリプトがあるパスからスクリプトを取得するエイリアスまたは関数を作成するか、プロンプト割り当て全体を関数に入れることです。また、スクリプトを明示的に使用.
したり呼び出す必要がないという利点もあります。source
ちなみに、ルートの場合はルート\$
に拡張されるため、#
ルートに別々のパスを設定する必要はありません。
割り当てると、export
現在のシェルから開始できる他のすべてのシェルに環境変数が表示されます。PS1
非対話型シェルがこれを消去するのに問題がありますが、一般的に.bashrc
。