Saltar al contenido

¿Cómo puedo verificar si una variable está vacía o no en tcsh Shell?

Solución:

Las advertencias estándar sobre el uso de tcsh/csh aplicar (no lo use para guion, debido a sus limitaciones inherentes), pero aquí está la traducción:

if ( "$1" == "" ) then      # parentheses not strictly needed in this simple case
    echo "variable is empty"
else 
    echo "variable contains $1"
endif

Sin embargo, tenga en cuenta que si usara un nombre de variable arbitrario en lugar de $1 en lo anterior, el La declaración se rompería si esa variable aún no estuviera definida (mientras que $1 siempre está definido, incluso si está desarmado).


Para planificar el caso donde una variable, digamos $var, puede no estar definido, se vuelve complicado:

if (! $?var) then       
  echo "variable is undefined"
else
  if ("$var" == "")  then
      echo "variable is empty"
  else 
      echo "variable contains $var"
  endif
endif

los anidado ifs son obligatorios para evitar romper el guión, ya que tcsh aparentemente no hace cortocircuito (un else if el condicional de la rama se evaluará incluso si el if se ingresa la rama; de manera similar, ambos lados de && y || las expresiones son aparentemente siempre evaluado: esto se aplica al menos con respecto al uso de variables no definidas).

Puedes probar esto (que se encuentra aquí):

set name
if ( ${%name} == 0 ) then
        echo " Variable name has 0 characters as value."
endif

Tenga en cuenta que la persona que publicó esto tiene la siguiente firma:

Consejo estándar: evite la familia csh para las secuencias de comandos.

Nota: Esto se romperá si el nombre es una variable de entorno.

setenv name foobar ; set name ; echo '+++'$name'+++' ; unset name ; echo '==='$name'==='

++++++
===foobar===
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *