GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo pasar la salida de un comando como argumento a otro?

Se ha hecho una pregunta similar, pero como soy nuevo en Unix la respuesta no me quedó clara debido al contexto. Lo que quiero hacer es pasar la salida de un comando como argumento a otro. Estoy usando git para el control de código fuente y trabajo en tres ramas diferentes.

Cada vez que necesito comprometerme, debo verificar mi rama y luego dar el comando correspondiente como

git pull --rebase origin <branch-name>

Quería escribir un alias como git-rebase y lo que haría es que primero ejecutará git branch .

La salida de la rama git se ve así

experiment
*master
new feature

Entonces, si tenemos dos ramas además de la rama maestra, mostrará todas las ramas y la rama actual estará marcada con una estrella. Quiero extraer la línea marcada con estrella y luego pasar la salida de esto al comando anterior.

También me gustaría suprimir la salida del comando git branch . No estoy haciendo esto porque sea demasiado perezoso para escribir el comando completo, sino porque me gustaría aprender más sobre el poder de Unix bash. Esperando aprender algo de ello

Respuesta aceptada:

Primero, necesitas masajear la git branch salida en un formato utilizable

$ git branch
  experiment
* master
  new feature

$ git branch | awk '/^\* / { print $2 }'
master

Ahora, quieres usar eso como argumento:

$ git pull --rebase origin $(git branch | awk '/^\* / { print $2 }')

(o puede usar acentos graves como en la respuesta de psusi).

Esto debería está bien, el comando awk siempre debe coincidir exactamente con una línea, y asumo que no puede tener espacios en los nombres de las ramas. Para algo mucho más complicado, probablemente lo incluiría en una función (o una secuencia de comandos) para que pueda verificar la cordura de los valores intermedios.


Linux
  1. Cómo guardar la salida del comando en un archivo en Linux

  2. Cómo pasar la contraseña al comando SCP en Linux

  3. ¿Pasar la salida del comando anterior al siguiente como argumento?

  4. ¿Cómo agregar la salida a un archivo?

  5. ¿Cómo paso un argumento de línea de comando al iniciar GDB en Linux?

Cómo cambiar de rama en Git

[Consejos de Bash] Cómo cd y ls en un solo comando

[Consejos de Bash] Cómo cp o mv y cd en un solo comando

Cómo pasar la contraseña al comando SSH en Linux

Cómo controlar versiones con Git en la línea de comando

¿Cómo copiar confirmaciones de un repositorio de Git a otro?