Po wpisaniu %
znaku w terminalu łamie on tę powłokę i każdą nową powłokę otwieram do ponownego uruchomienia:
$ seq 10 | parallel -j50% "echo Hi {}"
-bash: printf: `"': invalid format character
Czy ktoś wie, dlaczego tak jest?
Aby rozszerzyć nieco więcej, jeśli otworzę terminal, a echo "100%"
dzieje się tak:
Last login: Fri Nov 21 08:28:47 on ttys033
~$ echo "100%"
-bash: printf: `"': invalid format character
0; echo "100~$
-bash: printf: `"': invalid format character
7;file://mac-122667.dhcp.fnal.gov/Users/perdue~$
-bash: printf: `"': invalid format character
7;file://mac-122667.dhcp.fnal.gov/Users/perdue~$
-bash: printf: `"': invalid format character
Za każdym razem, gdy naciskam RET
po wprowadzeniu znaku procentu, Terminal miga i wyświetla komunikat o błędzie printf
. Właściwie pracowałem nad tym więcej po opublikowaniu pytania, a jedną rzeczą, którą zrobiłem, było uaktualnienie bash
:
~$ echo $BASH_VERSION
4.3.30(1)-release
To pomaga. Wcześniej był to Bash 2. coś (o ile pamiętam - cokolwiek domyślnego Mountain Lion jest). W tej wersji Basha każde otwarte okno terminalu oprócz tego, w którym umieściłem, %
było w porządku, ale każde nowe okno, które otworzyłem, było również uszkodzone i nic nie mogło przywrócić terminalu poza ponownym uruchomieniem.
Teraz, dzięki Bash 4.3, mogę wpisać polecenie, aby przywrócić monit do normy. Nowe okna terminali również są w porządku.
Ale - nadal nie mogę używać %
poleceń, które wkładam do terminalu. Na szczęście nie muszę często, ale takie rzeczy awk
po prostu nie działają na moim komputerze Mac.
Więc moje $ PS1 to:
~$ echo $PS1
\[\e[0;34m\]\W\[\e[0;31m\]$ \[\e[0m\]
Jeśli na początku wygląda to na mylące, oto kolory, które ustawiam w moim profilu bash:
# colours for use in prompts
RED="\[\e[0;31m\]"
GREEN="\[\e[0;32m\]"
YELLOW="\[\e[0;33m\]"
BLUE="\[\e[0;34m\]"
PURPLE="\[\e[0;35m\]"
CYAN="\[\e[0;36m\]"
export PS1="${BLUE}\W${RED}\$ ${NOCOLOR}"
Jeśli mam echo "100%"
inne konto użytkownika, jest w porządku! Tak wyraźnie, strzelam sobie gdzieś w stopę .bash_profile
. Co jest niedobre, ponieważ w zasadzie lubię moją konfigurację, a przynajmniej tak mi się wydaje, ha!
Jeśli ktoś chce przejrzeć moje pliki kropek, jest teraz w GitHub . (Jestem trochę zawstydzony, żeby im to pokazać - jest tam trochę cruft, haha).
%
znak w dowolnym poleceniu, Terminal zwariuje. Powyższy przykład był właśnie najnowszy, więc to właśnie skopiowałem i wkleiłem. Ale też mnie uderza, gdy go używam awk
.
echo "100%"
echo $PS1
ci daje