GNU/Linux >> Linux Esercitazione >  >> Linux

Inserire una variabile definita dall'utente in un alias in Bash?

Vorrei aggiungere un alias a un comando nel mio .bashrc file, come in questo esempio:

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

Ma vorrei specificare il nrow variabile quando lancio il comando dal terminale. Ad esempio:

take_row 1 –> lo script occupa la prima riga

take_row 20 –> lo script occupa la 20a riga

Come faccio a scrivere all'interno del comando qualcosa come <command> | <read nrow user input> , ecc.?

Risposta accettata:

Usa una funzione invece di un alias, nel qual caso puoi fare riferimento a parametri posizionali come $1 , ecc.

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

In questo caso particolare, puoi anche affrontare l'uso inutile di cat:

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

… e rendilo ancora più breve rimuovendo il codice non necessario:

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

Linux
  1. 10 utili alias Bash per Linux

  2. Script Bash(I)

  3. In Bash, quando alias, quando script e quando scrivere una funzione?

  4. Bash Dynamic (variabile) Nomi di variabili?

  5. Alias ​​con variabile in bash

Variabile di esportazione Bash

Bash printf - Come stampare una variabile in Bash

Come creare alias Bash

Bash Scripting:variabili spiegate con esempi

Interfacce utente con finestra di dialogo. Scripting Bash(IV)

Come impostare la variabile d'ambiente in Bash