GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el uso del comando ‘/usr/bin/[‘ [Corchete] en Linux?

Hoy me encontré con un comando interesante '[ ' (corchete) a través del famoso blog de Linux llamado nixCraft. Fue una publicación bastante interesante que explicaba el uso de '/usr/bin/[ ‘comando en Linux. Pero sabes qué, he estado trabajando en Linux durante algunos años y no conocía este comando hasta que apareció ese tweet de nixcraft en mi fuente de noticias. Lo aprendí de ustedes, gracias.

Bueno, estoy escribiendo esta publicación para compartir lo que aprendí de nixCraft. Básicamente '/usr/bin/[ ‘ comando es igual a ‘prueba ‘comando en Linux. Déjame explicarte.

En la programación de shell, si alguna vez desea verificar si un archivo en particular existe o no, entonces normalmente usa IF cond is not? Algo como el que se muestra a continuación:

if [ -f /etc/passwd ]
then
   echo "Yes"
else
  echo "No"
fi

Ahora, si ‘/etc/passwd existe, entonces verá el resultado " ” más “No “. Eso es simple y también puede hacer lo mismo para comparar valores. Pero, ¿notaste que '[ ‘ paréntesis después de ‘si '? Ahí es donde está'/usr/bin/[ entra en escena.

Alternativamente, puede verificar si el archivo existe o no como se muestra a continuación (sin IF):

[demo ~]$ [ -f /etc/passwd ] && echo "Yes" || echo "No"
Yes
[demo ~]$ [ -f /etc/passwd1 ] && echo "Yes" || echo "No"
No

En el fragmento anterior, puede ver ‘[‘ dominio. Como se dijo, el comando es igual a 'test '. Consulte el siguiente ejemplo:

if test -f /etc/passwd
then
   echo "Yes"
else
  echo "No"
fi

Bien, ambos '[ ‘ y ‘prueba ' hace el mismo trabajo, pero ¿están enlazados? Lo comprobé también, pero no lo son.

[demo ~]$ ls -l /usr/bin/test
 -rwxr-xr-x 1 root root 30064 Mar 21 2012 /usr/bin/test
[demo ~]$ ls -l /usr/bin/[
 -rwxr-xr-x 1 root root 32296 Mar 21 2012 /usr/bin/[

Básicamente, '[ ' es un comando de shell incorporado. Confírmelo usando 'escribir 'comando como se muestra a continuación:

[demo ~]$ type -a [
[ is a shell builtin
[ is /usr/bin/[

Nota: Ves '[ ' es un comando incorporado en Linux. Significa que, si el comando no contiene barras, SHELL intenta localizarlo a través de RUTA variables.

Dado que es un comando, debería haber una página de manual, ¿no es así?

[demo ~]$ man [
 No manual entry for [

No pude encontrar la página del manual para '[ ', luego vi la página man de 'test ' donde en la parte inferior, había una nota que dice acerca de '[ '. Ver a continuación:

[demo ~]$ man test
:::::::::::::
NOTE: your shell may have its own version of test and/or [, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supports.
Aquí hay un tweet interesante relacionado con esto de Joe Walnes.

Bonificación... Como '[' también hay '[['

[demo ~]$ type -a [[
[[ is a shell keyword

'[[ ‘ es en realidad una palabra clave similar a otras palabras clave en SHELL – ‘! hasta que termine seleccione elif else esac fi para la función de caso si [[ ]] en luego mientras { } tiempo

Dado que es una palabra clave, no puede encontrarla como comando.

[demo ~]$ ls -l /usr/bin/[[
ls: /usr/bin/[[: No such file or directory
[demo@gridfs ~]$ whereis [[
[[:

Linux
  1. Cómo usar el comando de historial en Linux

  2. ¿Cuáles son los significados de /usr/sbin, /usr/local/sbin y /usr/local/bin?

  3. Diferencia entre /bin y /usr/bin

  4. Se movió el contenido de /bin a /usr/bin, ¿es posible deshacerlo?

  5. ¿Qué es /usr/bin/[?

Cómo usar el comando xargs de Linux

Cómo usar el comando tee de Linux

Cómo usar el comando superior en Linux

¿Qué es el comando Watch de Linux + ejemplos?

¿Qué es el comando matar en Linux?

Uso del comando grep en Linux