2012-04-03 10 views
1

スクリプトを使用して、親Bashシェルのプロンプトを変更しました。私は、次のことを試してみました:Bash親シェルでのPS1プロンプトの変更

PS1="Hello World > " 

これは、スクリプトが実行されているサブシェルのプロンプトを変更しますが、そのコマンドは私が親シェルのプロンプトを変更するために使用します。何か案は?

+3

親からの協力なしには、親プロセスを変更する子プロセスのための方法はありません

PS1="Hello World > " 

はこのようにそれを呼び出します。あなたの例は、主にこれを理解しようとしていることを示唆しています。そうであれば、あなたは今完了です。解決する必要がある問題がある場合は、おそらく親がPS1 = $(サブシェルコマンド...)のように協力するように手配することができます – tripleee

+0

達成しようとしているのではなく、達成しようとしているものを指定する必要がありますそれ。そうすれば、あなたがしようとしていることをよりよく理解し、正しい解決策を導き出すことができます。 – Patrick

+0

コマンドプロンプトを "Hello World>"に変更したいが、可能であれば、永久にしたくない。 – batsta13

答えて

2

親シェルが協力しなければならない。 UNIX環境での子プロセスは、その協力なしに親プロセスに影響を与えることはできません。

サブシェルスクリプトchangePrompt.shでこれを試してみてください。そして、

echo 'PS1="Hello World > "' 

そして、このような親シェルからスクリプトを呼び出す:

eval "$(changePrompt.sh)" 

あるいは、異なるアプローチ:ソーススクリプトの代わりに呼び出しますそれ。 changePrompt.sh

source changePrompt.sh 

または単に:

. changePrompt.sh 
1

あなたが望むもので.bash_rcファイルを編集する必要があります...まっすぐにPS1 = "blah"などを追加してください。

.bash_rcファイルには、(その隠されたので、「LS -la」)

あなたはそれを編集した

、ソース、それを自分のホームディレクトリ/ユーザー/家庭または何であるべきであり、それは(ソースが動作するはずです。 bash_rc) - 同じディレクトリを仮定している場合

もしもそれが.rcファイルを試していれば、これは....システム全体に広がっていますが、これはすべてのシェルにとってです(少なくともそれは...)。 :すべてのC言語で

http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html --- here

+0

スクリプト内の親シェルのプロンプトを変更できるようにする必要がある – batsta13

+0

あなたは親の殻を意味しますか?ルートシェル?あなたがログインする最初のシェル? – Ryan

+0

シェルが最初にターミナルを開いたときに取得する – batsta13

関連する問題