varios script regulares patrones palabra manejo expresiones exacta comando cadenas buscar string bash unix character exitstatus

string - regulares - manejo de cadenas en shell script



Cómo verificar el primer carácter en una cadena en Unix (3)

Considere también la declaración de caso que es compatible con la mayoría de shells basados ​​en sh:

case "$STRING" in /*) echo 1 ;; *) echo 0 ;; esac

Estoy escribiendo un script en Unix donde tengo que verificar si el primer caracter en una cadena es "/" y si lo es, la rama.

por ejemplo, tengo una cadena

/some/directory/file

Quiero que esto vuelva 1

y

[email protected]:/some/directory/file

esto para devolver 0

¿Cómo puedo proceder para hacer esto?


Muchas formas de hacer esto. Puede usar comodines entre corchetes dobles:

str="/some/directory/file" if [[ $str == /* ]]; then echo 1; else echo 0; fi

Puede usar la expansión de subcadenas:

if [[ ${str:0:1} == "/" ]] ; then echo 1; else echo 0; fi

O una expresión regular:

if [[ $str =~ ^/ ]]; then echo 1; else echo 0; fi


$ foo="/some/directory/file" $ [ ${foo:0:1} == "/" ] && echo 1 || echo 0 1 $ foo="[email protected]:/some/directory/file" $ [ ${foo:0:1} == "/" ] && echo 1 || echo 0 0