2012-04-03 10 views
1

Mit einem Skript sollte ich die Eingabeaufforderung der übergeordneten Bash-Shell ändern. Ich habe folgendes versucht:Ändern der PS1-Eingabeaufforderung in einer Bash-Parent-Shell

PS1="Hello World > " 

Dadurch ändert sich die Eingabeaufforderung des Subshell, die das Skript in läuft, aber das Kommando würde ich die Aufforderung der Eltern-Shell ändern verwenden. Irgendwelche Ideen?

+3

Es gibt keine Möglichkeit für ein Kind Prozess seinen Eltern-Prozess von der Mutter ohne Zusammenarbeit zu ändern. Ihr Beispiel legt nahe, dass Sie in erster Linie versuchen, dies herauszufinden. Wenn das der Fall ist, sind Sie jetzt fertig. Wenn es ein Problem gibt, das du lösen musst, kannst du vielleicht dafür sorgen, dass der Elternteil kooperiert, wie 'PS1 = $ (subshell commands ...)' – tripleee

+0

Du solltest angeben, was genau du zu erreichen versuchst, nicht wie du es erreichen willst es. Auf diese Weise können wir besser verstehen, was Sie zu tun versuchen, und mit einer korrekten Lösung helfen. – Patrick

+0

Ich möchte die Eingabeaufforderung zu "Hello World>" ändern, aber wenn möglich nicht dauerhaft – batsta13

Antwort

2

In allen c ases muss die Elternhülle kooperieren. Der Kindprozess in einer Unix-Umgebung kann den Elternprozess ohne seine Kooperation nicht beeinflussen.

Versuchen Sie dies in der Sub-Shell-Skript changePrompt.sh:

echo 'PS1="Hello World > "' 

Und dann rufen Sie das Skript aus der Eltern-Shell wie folgt aus:

eval "$(changePrompt.sh)" 

Oder ein anderer Ansatz: Source das Skript statt Aufruf es. changePrompt.sh:

PS1="Hello World > " 

Nennen Sie es wie folgt aus:

source changePrompt.sh 

oder einfach:

. changePrompt.sh 
1

Sie müssen die .bash_rc Datei bearbeiten, mit was Sie wollen ... einfach gerade hinzufügen PS1 = "blah" oder was auch immer.

die .bash_rc Datei in Ihrem Home-Verzeichnis/user/home oder was auch immer (seine verborgenen so "ls -la")

wenn Sie bearbeitet haben es, Quelle, und es sollte funktionieren (Quelle sein sollte. bash_rc) - vorausgesetzt, das gleiche dir

wenn das nicht funktioniert versuchen Sie die .rc-Datei .... das ist systemweit obwohl für alle Shells (oder zumindest sollte es sein) ..... versuchen Sie es hier für weitere Informationen :

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

+0

Ich muss in der Lage sein, die Eingabeaufforderung der übergeordneten Shell in einem Skript – batsta13

+0

genauer zu ändern, was tun Du meinst Elternschale? Wurzelschale? die erste Shell, mit der du dich anmeldest? – Ryan

+0

Die Shell erhalten Sie, wenn Sie das Terminal zum ersten Mal öffnen – batsta13

Verwandte Themen