Вставка пользовательской переменной в псевдоним в Bash

Для этого можно использовать косвенные ссылки на bash :

AR1_p1=22
AR1_p2=23
AR1_p3=24
AR1_p4=25
for i in 1 2 3 4
do
  VARNAME="AR1_p${i}"
  echo "${!VARNAME}"
done

7
28.01.2019, 02:23
1 ответ

Используйте функцию вместо псевдонима, и в этом случае вы можете ссылаться на позиционные параметры, такие как $1и т. д.

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

В этом конкретном случае вы также можете обратиться к бесполезному использованию кота:

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

... и сделать его еще короче, удалив ненужный код:

take_row () {
    local nrow=$1
    awk -v nrow="${nrow}" 'NR==nrow' prova.csv_001.txt
}
13
27.01.2020, 20:16

Теги

Похожие вопросы