GNU/Linux >> Znalost Linux >  >> Linux

Jak předat výstup jednoho příkazu jako argument druhému?

Byla položena podobná otázka, ale protože jsem nový v Unix odpověď mi nebyla jasná vzhledem ke kontextu. Co chci udělat, je předat výstup jednoho příkazu jako argument druhému. Používám git pro ovládání zdroje a pracuji na třech různých větvích.

Kdykoli potřebuji provést commit, musím zkontrolovat svou větev a poté zadat odpovídající příkaz jako

git pull --rebase origin <branch-name>

Chtěl jsem napsat alias jako git-rebase a udělá to tak, že nejprve spustí git branch .

Výstup větve git vypadá takto

experiment
*master
new feature

Takže pokud máme dvě větve kromě hlavní větve, zobrazí se všechny větve a aktuální větev bude označena hvězdičkou. Chci extrahovat čáru označenou hvězdičkou a poté předat její výstup výše uvedenému příkazu.

Také bych chtěl potlačit výstup příkazu git branch . Nedělám to proto, že bych byl příliš líný napsat celý příkaz, ale proto, že bych se rád dozvěděl více o síle unix bash. Doufám, že se z toho něco naučím

Přijatá odpověď:

Nejprve musíte promasírovat git branch výstup do použitelného formátu

$ git branch
  experiment
* master
  new feature

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

Nyní to chcete použít jako argument:

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

(nebo můžete použít zpětné zaškrtnutí jako v odpovědi psusi).

Toto by mělo buďte v pořádku, příkaz awk by měl vždy odpovídat přesně jednomu řádku a předpokládám, že v názvech větví nemůžete mít mezery. U čehokoli mnohem komplikovanějšího bych to pravděpodobně zabalil do funkce (nebo skriptu), abyste mohli provést kontrolu středních hodnot.


Linux
  1. Jak připojit výstup do souboru?

  2. Výstup příkazu Linux jako parametr jiného příkazu

  3. Jak zadat heslo do příkazu git pull?

  1. Jak přiřadit výstup příkazu Linux k proměnné

  2. Jak předat výstup příkazu jako více argumentů jinému příkazu

  3. Jak zkopírovat commity z jednoho repozitáře Git do druhého?

  1. Jak uložit výstup příkazu do souboru v Linuxu

  2. Předat výstup předchozího příkazu dalšímu jako argument?

  3. Jak předat argument příkazového řádku do skriptu Shell?