bash - una - preguntas dentro de un parrafo
¿Por qué debería haber un espacio después de ''['' y antes '']'' en Bash? (4)
¡Una vez que comprendes que [
es una orden , mucho se vuelve más claro!
[
es otra forma de deletrear " test
".
help [
Sin embargo, mientras hacen exactamente lo mismo, resulta que la test
tiene una página de ayuda más detallada. Comprobar
help test
...para más información.
Además, tenga en cuenta que estoy usando, por intención, la help test
y no la man test
. Eso es porque test
y [
son comandos integrados de shell hoy en día. Su conjunto de características puede diferir de /bin/test
y /bin/[
de coreutils, que son los comandos que se describen en las páginas man
.
Estaba tratando de escribir un script Bash que usa una declaración if
.
if [$CHOICE -eq 1];
El script me estaba dando errores hasta que di un espacio después de [
y antes ]
como se muestra a continuación:
if [ $CHOICE -eq 1 ];
Mi pregunta aquí es: ¿por qué el espacio alrededor de los corchetes es tan importante en Bash?
De otra pregunta :
Un poco de historia: esto se debe a que ''['' históricamente no fue un shell-built-in sino un ejecutable separado que recibió el expresson como argumentos y arrojó un resultado. Si no rodeó el ''['' con espacio, el shell estaría buscando $ PATH para un nombre de archivo diferente (y no lo encontrará). - Andrew Medico 24 de junio de 2009 a las 1:13
[
es un comando de test
. Entonces requiere espacio
[
es un comando y $CHOICE
debe ser un argumento, pero al hacer [$CHOICE
(sin ningún espacio entre [
y $CHOICE
] está intentando ejecutar un comando llamado [$CHOICE
. La sintaxis para el comando es:
command arguments separated with space