GNU/Linux >> Znalost Linux >  >> Linux

Vložit uživatelem definovanou proměnnou do aliasu v Bash?

Chtěl bych přidat alias k příkazu v mém .bashrc soubor, jako v tomto příkladu:

alias take_row="cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'"

Ale rád bych specifikoval nrow proměnnou, když spustím příkaz z terminálu. Jako příklad:

take_row 1 –> skript zabere první řádek

take_row 20 –> skript zabere 20. řádek

Jak napíšu do příkazu něco jako <command> | <read nrow user input> , atd.?

Přijatá odpověď:

Místo aliasu použijte funkci, v takovém případě můžete odkazovat na poziční parametry, jako je $1 , atd.

take_row () {
    local nrow="$1"
    cat prova.csv_001.txt | awk -v nrow="${nrow}" '{if (NR==nrow) print}'
}

V tomto konkrétním případě můžete také řešit zbytečné použití cat:

take_row () {
    local nrow=$1
    awk -v nrow="${nrow}" '{if (NR==nrow) print}' prova.csv_001.txt
}

… a ještě to zkrátit odstraněním nepotřebného kódu:

take_row () {
    local nrow=$1
    awk -v nrow="${nrow}" 'NR==nrow' prova.csv_001.txt
}

Linux
  1. 10 praktických aliasů Bash pro Linux

  2. Použití odkazu na proměnnou bashového řetězce v Sed?

  3. Alias ​​s proměnnou v bash

  1. V Bash, kdy alias, kdy skript a kdy napsat funkci?

  2. Bash Dynamické (proměnné) názvy proměnných?

  3. Jak odstranit proměnnou pouze pro čtení v bash?

  1. Proč je nastavení proměnné před příkazem v Bash legální?

  2. Zkontrolujte, zda existuje proměnná v seznamu v Bash

  3. předání grepu do proměnné v bash