Passa o valor da variável para o outro comando

0

Eu tenho o seguinte comando:

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

Encontre o nome dos coletores:

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

Ele encontra o número de índice de determinados sumidouros, ou seja, $ usb_soundcard_sink

Agora, no comando a seguir, quero passar o parâmetro $ sink_index.

Eu tentei no seguinte comando:

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

Mas não é aceito $sink_index como parâmetro.

Então, como posso passar o valor da variável sink_index para esse comando?

    
por Prakash V Holkar 29.04.2014 / 07:49

1 resposta

1

Se você armazenou sink_index como variável de ambiente, você poderia usar $ 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/.*\ \(.*\)%.*//g')
    
por Sylvain Pineau 29.04.2014 / 10:44