Bashスクリプトで端末を起動したときにプロンプ​​トを変更する(ただし、すべての端末には影響しません)

Bashスクリプトで端末を起動したときにプロンプ​​トを変更する(ただし、すべての端末には影響しません)

2つの端末がインストールされていgnome-terminalますxfce4-terminal

>xfce端末は起動時に単純なプロンプトのみを表示したいと思います。プロンプトはgnome-terminal同じままでなければなりません(したがってbashrc修正がないと仮定します)。

xfce-terminalいくつかのパラメータがあるスクリプトや他の端末から始めてもかまいません。

私は試した:

xfce4-terminal -x export PS1='> '

しかし、これはエラーを引き起こし、明らかに不可能です。

少しハッキングしても、どんな解決策でも大歓迎です。

ベストアンサー1

名前を変更し.bashrc、親プロセスの名前をテストします。

parent_process=$(ps -o comm= -p $PPID)
parent_process=${parent_process##*/}
case "$parent_process" in
  xfce4-terminal) PS1='> ';;
esac

別の方法は、環境変数を設定することです。 runPROMPT_THEME=plain xfce4-terminalPROMPT_THEMEtest.bashrcそこから変数を設定解除するか、少なくともエクスポートを取り消すことができます。それ以外の場合は、最初の端末で開始された端末にも設定されます。

case $PROMPT_THEME in
  plain) PS1='> ';;
esac
export -n PROMPT_THEME

の場合、xfce4-terminal最初のインスタンスを除いては機能しません。後続のインスタンスは実行中のインスタンスに新しいウィンドウを開くように通知するため、新しいインスタンスは実行中のインスタンスから環境を継承します。 (はい!)ユーティリティを使用して、端末で実行されるコマンドを使用して環境変数を設定できますenv

xfce4-terminal -x env PROMPT_THEME=plain bash

おすすめ記事