У меня есть следующая команда:
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
переменная к той команде?
При хранении 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')