Dies ist eine eher kosmetische (und triviale) Frage, aber ich nehme an, dass sie für andere als mich nützlich sein könnte. Ich habe mit der Variable $PS1 in meiner ~/.bashrc herumgespielt und mich gefragt, ob es eine Möglichkeit gibt, die erste Eingabeaufforderung etwas anders zu gestalten als alle anderen Eingabeaufforderungen. Genauer gesagt habe ich bisher Folgendes:
PS1='\n\[\e[0;37m\][\[\e[0;35m\]\t\[\e[0;37m\]] \[\e[0;36m\]\u@\h \[\e[0;37m\][\[\e[1;34m\]\W\[\e[0;37m\]] \[\e[0;36m\]\$ \[\e[0m\]'
aber ich möchte nicht, dass die neue Zeile am Anfang in der ersten Eingabeaufforderung angezeigt wird (und ich könnte dies erweitern, damit die erste Eingabeaufforderung weitere Informationen usw. enthält). Ich verwende Gnome-Terminal, falls das einen Unterschied macht.
Ist das überhaupt möglich? Und wenn ja, wie?
Antwort1
Eine Möglichkeit hierfür wäre die Verwendung von PROMPT_COMMAND von bash. Sie könnten beispielsweise Folgendes in Ihre ~/.bashrc einfügen (oder es während des Experimentierens in der Befehlszeile ausführen).
set_ps()
{
if [ -z "$PSFLAG" ]
then
# Set first prompt
PS1='first prompt: '
PSFLAG=1
else
# Set other prompt
PS1='other prompt: '
fi
}
PROMPT_COMMAND=set_ps
Antwort2
Wenn Sie möchten, dass einige Zeichen vor der ersten Eingabeaufforderung und nie wieder ausgegeben werden, warum geben Sie .bashrc
sie dann nicht einfach aus?