Portál AbcLinuxu, 6. listopadu 2025 17:57
Řešení dotazu:
Máme skript /usr/bin/prompt:
#!/bin/bash
h=$(date +%H)
if [ $h -le 3 ]; then
echo "Ahoj"
elif [ $h -le 7 ]; then
echo "Dobre rano"
elif [ $h -le 11 ]; then
echo "Dobre dopoledne"
elif [ $h -le 13 ]; then
echo "Dobre poledne"
elif [ $h -le 17 ]; then
echo "Dobre odpoledne"
elif [ $h -le 23 ]; then
echo "Dobry vecer"
else
echo "Dobrou noc"
fi
Nastavte skriptu příslušná práva a poté ho zaneste do proměnné PS1: $ export PS1="$(/usr/bin/prompt)> " Dobry vecer>Odkaz: Linux v příkazech - vylaďte si Bash!
#!/bin/bash h=$(pwd) if [ $h != '/' ]; then echo -n "/"; fi
[petr@nt ~]$ export PS1='[\u@\h \w$(/home/petr/prompt)] ' [petr@nt ~/] cd /etc [petr@nt /etc/] cd /home [petr@nt /home/] cd / [petr@nt /]Myslím že toto dělá přesně co chceš
.
Raději bych sice, kdyby to šlo přímo (bez přítomnosti skriptu - když chybí, tak to zařve), ale i tak velká spokojenost
.
h=$(pwd) if [ $h != '/' ]; then echo -n "/"; fi
if [ "`pwd`" != '/' ]; then echo -n "/"; fi
.
Pak by jsi musel tam kde nastavuješ proměnnou PS1 testovat zda skript existuje a když ne nastavit PS1 bez použití skriptu.Jasné, už blbnu - ptám se na úplné základy... Mimochodem, v mém případě jde spíš o víc počítačů
.
DíkyTak ještě takto: PS1='[\u@\h \w$(if [ "`pwd`" != '/' ]; then echo -n "/"; fi)] ' ovšem co to udělá jak jako shell bude něco jiného jak bash netuším.. Raději bych sice, kdyby to šlo přímo (bez přítomnosti skriptu - když chybí, tak to zařve), ale i tak velká spokojenost
.
${PWD%/}/
.
Jinak dobrý
.
Zkusím použít regexp bashe.
PROMPT_COMMAND
PS1=""
PROMPT_COMMAND='echo -n "${USER} ${PWD/#$HOME/~}"; if [ "$PWD" != "/" ];then echo -n "/";fi;echo -ne " \$"'
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.