0 votos

Variables vacías en el golpe de Termux

Quiero hacer una prueba: si una cierta variable existe, no está vacía, y su valor coincide con un directorio existente, entonces se debe escribir "existe".

Hice lo siguiente:

$ echo $var

$ if [ -d $var ]; then echo "exists"; fi
exists

Conseguí "existir", aunque no le asigné ningún valor a $varr. ¿Por qué tengo "existe"? ¿Y cómo hacer la prueba correctamente?

screenshot

0 votos

Si @WillW ha respondido a su pregunta, por favor, márquela como aceptada. :)

3voto

WillW Puntos 11

Creo que necesitas envolver $var entre comillas.

if [ -d "$var" ]; then echo "exists"; fi

0voto

Brian Mains Puntos 31772

[ -d FILE ] Verdadero si FILE existe y es un directorio

Probablemente quiera utilizar una de estas pruebas en su lugar:

[ -z CUERDA ] Verdadero de la longitud si "CUERDA" es cero.

[ -n CUERDA ] o [ CUERDA ] Verdadero si la longitud de "CUERDA" es distinta de cero.

Desde https://www.tldp.org/LDP/abs/html/fto.html

¿Cómo puedo probar esto correctamente? si una determinada variable existe, no está vacía

Esta cuestión se discute en detalle https://stackoverflow.com/questions/3601515/how-to-check-if-a-variable-is-set-in-bash aquí.

su valor coincide con un directorio existente

Este código [["${F1AR[@]}" =~ "${NAME##*/}" ]] comprueba si los valores coinciden con los directorios existentes. Desde https://github.com/BuildAPKs/buildAPKs/blob/master/scripts/bash/build/build.github.bash#L59

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X