我有以下命令:
usb_soundcard_sink=$(pactl list short sinks | grep "alsa_output" | awk '{ print $2 }' | tail -n1)
此命令的输出是:
alsa_output.pci-0000_00_1b.0.analog-stereo
这是另一个查找索引号的命令:
var=$(pactl list short sinks | awk '$2=="alsa_output.pci-0000_00_1b.0.analog-stereo" {print $1}')
输出:
0
但我想在上面的命令中传递“usb_soundcard_sink”变量而不是硬编码值,即“alsa_output.pci-0000_00_1b.0.analog-stereo”。“usb_soundcard_sink”变量的 b'coz 值可能会动态变化。
我也尝试了以下方法:
var=$(pactl list short sinks | awk '$2=="$usb_soundcard_sink" {print $1}')
但它不起作用
那么如何将“usb_soundcard_sink”变量的值传递给上述命令
要在 awk 中使用 bash 变量,您必须使用如下-v
语法:
pactl list short sinks | awk -v myvar="$usb_soundcard_sink" '$2==myvar {print $1}'
# ^^^^^ ^^^^^
# |________________________________|
$ a=3
$ awk -v myvar="$a" 'BEGIN{print myvar}'
3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句