Parece que es una especie de operador de comparación, pero ¿qué es exactamente lo que hace en, por ejemplo, el siguiente código (tomado de https://github.com/lvv/git-prompt/blob/master/git-prompt.sh#L154)?¿Qué hace el operador "= ~" en scripts de shell?
if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then
elipses_marker="…"
else
elipses_marker="..."
fi
Estoy intentando actualmente hacer git-prompt
para trabajar bajo MinGW, y la caja suministrada con MinGW no parece apoyar este operador:
conditional binary operator expected
syntax error near `=~'
` if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then'
En este caso específico que sólo puede sustituir todo el bloque con elipses_marker="…"
(como sé que mi terminal admite unicode), pero ¿qué es exactamente lo que =~
hace?
No hay necesidad de ejecutar grep en backticks. 'si echo $ LC_TYPE | grep -Fq UTF && test "$ TERM"! = linux; then' –
Intentando alentar el código legible ... Lo encuentro más intuitivo con solo una 'prueba' y los backticks que rodean la primera" expresión ", haciendo que parezca una expresión. (Y grep -q sería cierto en un error también) :-) Pero estoy de acuerdo. Tengo el hábito de usar 'test' con demasiada frecuencia, pero creo que es más legible que' if: ing' a pipe. – MattBianco
¿Qué quiere decir con "grep -q sería cierto también en un error"? –