Ich wollte ein kleines Shell-Skript schreiben, das die Eingabeaufforderung verkürzt, wenn es zu lang wird. Das Setzen der PS1-Variablen in bash funktioniert gut. Wenn ich den gleichen Befehl direkt in einem Skript ausprobiere und es ausführe, passiert nichts.Bash-Prompt vorübergehend durch eigenes Skript ändern
#!/bin/bash
PS1='\u:\W\$ '
Ich versuchte eval "PS1='\u:\W\$ '"
, export PS1='\u:\W\$ '
und exec PS1='\u:\W\$ '
ohne Ergebnis.
Wie kann ich das gleiche Ergebnis wie eine direkte Eingabe in der Bash erreichen?
Vielen Dank im Voraus
BTW, könnten Sie eine Shell-Funktion anstelle eines Skripts dafür verwenden. –
Das bedeutet eine Funktion zu ~/.profile oder ~/bashrc hinzufügen? – mremergo
'~/.bashrc', nicht' ~/.profile' - der Bashrc wird für jede interaktive Shell ausgeführt, das Profil nur für Login-Shells (außer in einigen Betriebssystemen, die durch Löschen für Benutzer "einfacher" zu sein versuchen) der Unterschied, aber es ist schlechte Form, darauf zu zählen, auf einer von diesen zu sein), und reguläre Funktionen werden nicht von Kindprozessen geerbt, so dass Sie (im Gegensatz zu Umgebungsvariablen, die für '~/.profile' geeignet sind) nicht erhalten sie überall dort, wo sie gebraucht werden, außer sie befinden sich in '~/.bashrc'. –