¿Por qué "A = 3; A = 4 Echo $ A "Produce 3 (en lugar de 4) en Bash? [duplicar] -- linux campo con bash camp Relacionados El problema

Why does “A=3; A=4 echo $A” produce 3 (instead of 4) in Bash? [duplicate]


4
vote

problema

Español
Esta pregunta ya tiene respuestas aquí :
¿Por qué no puede ¿Especifico una variable de entorno y te echo eco en la misma línea de comando? (9 respuestas)
CERRADO 1 año hace .

Si entiendo correctamente, la sintaxis

  Var=<something> command    

debe ejecutar el comando después de configurar var a "algo". Entonces, ¿por qué "A=3; A=4 echo $A" produce 3 en mi bash?

Original en ingles

If I understand correctly, the syntax

Var=<something> command  

should run the command after setting Var to "something". Then why does "A=3; A=4 echo $A" produces 3 in my bash?

     

Lista de respuestas

7
 
vote
vote
La mejor respuesta
 

Las variables en Bash se evalúan antes de que comience la ejecución y no durante la ejecución, por lo que tenemos una etapa de preprocesamiento para el comando:

  INPT-REC3  

INPT-REC4 se evalúa al valor actual de INPT-REC5 y la reemplaza antes de la ejecución a:

  INPT-REC6  

Y solo entonces se ejecuta, INPT-REC7 Se imprime los cambios en 4 y 3.

 

Variables in bash are evaluated before execution starts and not during execution, so we have a preprocessing stage for the command:

A=4 echo $A 

$A is evaluated to the current value of A and replaces it before the execution to:

A=4 echo 3 

and only then it is executed, A changes value to 4, and 3 is printed.

 
 
         
         
0
 
vote

Esto se debe a que no coloca un punto y coma después de la segunda asignación de variables.

Intente lo siguiente en lugar:

  A=3; A=4; echo $A   
 

This is because you do not put a semicolon after the second variable assignment.

Try the following instead:

A=3; A=4; echo $A 
 
 
 
 

Relacionados problema

11  Bash: Strip de nuevo carácter de línea de cadena (LEER LINE)  ( Bash strip new line character from string read line ) 
Me topé con el siguiente problema: estoy escribiendo un script de Linux Bash que hace lo siguiente: Lea línea de archivo Tira del del carácter del fina...

271  ¿Cómo encontrar si una variable está vacía o no en Bash?  ( How to find whether or not a variable is empty in bash ) 
¿Cómo puedo verificar si una variable está vacía en Bash? ...

6  Usando RVM con GVIM (crema): comando rvm no encontrado  ( Using rvm with gvim cream rvm command not found ) 
Estoy tratando de mudarme a GVIM (Crema) como mi editor principal en Ubuntu. Estoy usando los maravillosos Rails.Vim, sin embargo, también estoy usando RVM. ...

1607  ¿Cómo redirigir y agregar tanto stdout como stderr a un archivo con bash?  ( How to redirect and append both stdout and stderr to a file with bash ) 
Para redirigir stdout a un archivo truncado en Bash, sé usar: cmd > file.txt Para redirigir stdout en bash, anexar a un archivo, sé usar: cmd >>...

65  Incrustar scripts de python cortos dentro de un guión bash  ( Embedding short python scripts inside a bash script ) 
Me gustaría incrustar el texto de los scripts cortos de Python dentro de un script de bash, para usarlo, mi .bash_profile . ¿Cuál es la mejor manera de hacer...

1  Cómo usar Windows Bash Script para abrir un sitio web con mi nombre de usuario y contraseña  ( How to use windows bash script to open a website with my username and password ) 
Me gusta escribir un script de Windows Bash, Test.bat Para abrir un sitio web, diga www.test.com y proporcione mi nombre de usuario y contraseña al mismo tiem...

111  ¿Cómo ejecuto cualquier comando que edite su archivo (argumento) "en su lugar" usando Bash?  ( How do i execute any command editing its file argument in place using bash ) 
Tengo un archivo temp.txt, que quiero ordenar con el comando sort en Bash. Quiero los resultados ordenados para reemplazar el archivo original. Esto no ...

1  Cómo obtener archivos a medida que se agregan a un servidor remoto  ( How to get files as they are added to a remote server ) 
Estoy usando un script de bash (a continuación) en un servidor remoto (hasta ahora usando SSH para conectarse) para ejecutar un script de Python que descarga ...

22  Shell Scripting Entrada Redirección Oddies  ( Shell scripting input redirection oddities ) 
¿Puede alguien explicar este comportamiento? Corriendo: #!/bin/sh echo "hello world" | read var1 var2 echo $var1 echo $var2 Resultados en nada siendo O...

687  Cómo usar paréntesis dobles o individuales, paréntesis, tirantes rizados  ( How to use double or single brackets parentheses curly braces ) 
Estoy confundido por el uso de corchetes, paréntesis, tirantes rizados en Bash, así como la diferencia entre sus formas dobles o individuales. ¿Hay una explic...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos