Значение передачи variabe к другой команде

У меня есть следующая команда:

usb_soundcard_sink=$(pactl list short sinks | grep "alsa_output" | awk '{ print $2 }' | tail -n1)

Это находит имя приемников:

sink_index=$(pactl list short sinks | awk -v index_number=$usb_soundcard_sink '$2==index_number {print $1}')

Это находит индекс данных приемников т.е. $usb_soundcard_sink

Теперь в следующей команде я хочу передать $sink_index как параметр.

Я попробовал в следующей команде:

volume=$(pactl list sinks | perl -000ne 'if(/#$sink_index/){/(Volume:.*)/; print "$1\n"}' | sed 's/.*\ \(.*\)%.*/\1/g')

Но это не принято $sink_index как параметр.

Таким образом, как я могу передать значение sink_index переменная к той команде?

0
задан 29 April 2014 в 09:49

1 ответ

При хранении sink_index как переменной среды, Вы могли бы использовать $ENV {} вместо этого:

export sink_index=$(pactl list short sinks | awk -v index_number=$usb_soundcard_sink '$2==index_number {print $1}')

volume=$(pactl list sinks | perl -000ne 'if(/#$ENV{sink_index}/){/(Volume:.*)/; print "$1\n"}' | sed 's/.*\ \(.*\)%.*/\1/g')
1
ответ дан 7 October 2019 в 22:22

Другие вопросы по тегам:

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