GNU/Linux >> Tutoriels Linux >  >> Linux

Insérer une variable définie par l'utilisateur dans un alias dans Bash ?

Je souhaite ajouter un alias à une commande dans mon .bashrc fichier, comme dans cet exemple :

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

Mais je voudrais spécifier le nrow variable lorsque je lance la commande depuis le terminal. Par exemple :

take_row 1 –> le script prend la première ligne

take_row 20 –> le script prend la 20ème ligne

Comment puis-je écrire dans la commande quelque chose comme <command> | <read nrow user input> , etc. ?

Réponse acceptée :

Utilisez une fonction au lieu d'un alias, auquel cas vous pouvez faire référence à des paramètres positionnels tels que $1 , etc.

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

Dans ce cas particulier, vous pouvez également aborder l'utilisation inutile de cat :

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

… et rendez-le encore plus court en supprimant le code inutile :

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

Linux
  1. 10 alias Bash pratiques pour Linux

  2. Pourquoi définir une variable avant une commande est-il légal dans Bash ?

  3. Alias ​​avec variable dans bash

  4. Vérifier si une variable existe dans une liste dans Bash

  5. La manipulation de la fonction bash expliquée

Variable d'exportation bash

Bash printf - Comment imprimer une variable dans Bash

Comment créer des alias Bash

Bash Scripting - Variables expliquées avec des exemples

Interfaces utilisateur avec dialogue. Script bash (IV)

Comment définir une variable d'environnement dans Bash