Sembra che sia una sorta di operatore di confronto, ma che cosa fa esattamente es. il seguente codice (preso da https://github.com/lvv/git-prompt/blob/master/git-prompt.sh#L154)?Cosa fa l'operatore "= ~" negli script di shell?
if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then
elipses_marker="…"
else
elipses_marker="..."
fi
Attualmente sto cercando di fare git-prompt
a lavorare sotto MinGW, e la shell fornita con MinGW non sembra sostenere questo operatore:
conditional binary operator expected
syntax error near `=~'
` if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then'
In questo caso specifico posso solo sostituire l'intero blocco con elipses_marker="…"
(come so che il mio terminale supporta l'unicode), ma cosa fa esattamente questo =~
?
Non è necessario eseguire grep in backtick. 'se echo $ LC_TYPE | grep -Fq UTF && test "$ TERM"! = linux; then' –
Cercando di incoraggiare il codice leggibile ... Trovo più intuitivo con un solo 'test' e gli apici invocati che circondano la prima" espressione ", facendolo sembrare un'espressione. (E grep -q sarebbe vero anche su un errore) :-) Ma sono d'accordo. Ho l'abitudine di usare 'test' troppo spesso, ma penso che sia più leggibile di' if: ing' a pipe. – MattBianco
Cosa intendi con "grep -q sarebbe true anche su un errore"? –