marillion - fish prueba
Prueba de igualdad de cuerdas/comparaciĆ³n de cuerdas en concha de pescado? (2)
¿Cómo se comparan dos cadenas en Fish (como "abc" == "def"
en otros idiomas)?
Hasta ahora, he usado una combinación de contains
(resulta que contains "" $a
solo devuelve 0
si $a
es la cadena vacía, aunque eso no pareció funcionar en todos los casos) y switch
(con un case "what_i_want_to_match"
y un case ''*''
). Ninguno de estos métodos parece particularmente ... correcto, sin embargo.
Algunas veces quiere verificar cadenas vacías o variables indefinidas , que son falsas en el pescado.
set hello "world"
set empty_string ""
set undefined_var # Expands to empty string
if [ $hello ]
echo "not empty" # <==
else
echo "empty"
end
if [ $empty_string ]
echo "not empty"
else
echo "empty" # <==
end
if [ $undefined_var ]
echo "not empty"
else
echo "empty" # <==
end
También puede usar la test
lugar de [
.
Un ejemplo práctico es verificar si estás en una sucursal git.
function git_branch
echo (command git symbolic-ref HEAD ^/dev/null | sed -e ''s|^refs/heads/||'')
end
set --local branch_name (git_branch)
if [ $branch_name ]
echo "$branch_name branch checked out"
else
echo "not in a git repo"
end
if [ "abc" != "def" ]
echo "not equal"
end
not equal
if [ "abc" = "def" ]
echo "equal"
end
if [ "abc" = "abc" ]
echo "equal"
end
equal
o un trazador de líneas:
if [ "abc" = "abc" ]; echo "equal"; end
equal