GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eine benutzerdefinierte Variable in einen Alias ​​in Bash einfügen?

Ich möchte einem Befehl in meiner .bashrc einen Alias ​​hinzufügen Datei, wie in diesem Beispiel:

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

Aber ich möchte die nrow angeben Variable, wenn ich den Befehl vom Terminal aus starte. Als Beispiel:

take_row 1 –> das Skript nimmt die erste Zeile

take_row 20 –> das Skript nimmt die 20. Zeile ein

Wie schreibe ich in den Befehl so etwas wie <command> | <read nrow user input> , usw.?

Akzeptierte Antwort:

Verwenden Sie eine Funktion anstelle eines Alias, in diesem Fall können Sie auf Positionsparameter wie $1 verweisen usw.

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

In diesem speziellen Fall können Sie auch die nutzlose Verwendung von cat ansprechen:

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

… und machen Sie es noch kürzer, indem Sie unnötigen Code entfernen:

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

Linux
  1. 10 praktische Bash-Aliase für Linux

  2. Warum ist das Setzen einer Variablen vor einem Befehl in Bash legal?

  3. Überprüfen Sie, ob eine Variable in einer Liste in Bash vorhanden ist

  4. Übergeben von grep an eine Variable in bash

  5. Wie lösche ich eine schreibgeschützte Variable in Bash?

Bash-Exportvariable

Bash printf - So drucken Sie eine Variable in Bash

So erstellen Sie Bash-Aliase

Bash-Scripting – Variablen mit Beispielen erklärt

Benutzeroberflächen mit Dialog. Bash-Skripting (IV)

So setzen Sie die Umgebungsvariable in Bash