我正在尝试编写一个 macOS shell 脚本,它可以使用默认打印机的描述(友好名称)作为变量。我已经走到这一步了:
#!/bin/bash
default_printer_info=$(lpstat -d)
printer_name=$(echo $default_printer_info | awk '{print $4}')
lpstat -l -p | awk 'c&&!--c;/'"$printer_name"'/{c=4}' | grep Description: | cut -d " " -f2-
这不起作用 - 尽管如果我手动将
$printer_name
变量的内容输入 awk
字符串(例如,PDFwriter
),这些命令中的最后一个可以正常工作。
任何人都可以帮忙将
$printer_name
变量放入 awk
字符串中吗?我尝试过awk -v VAR="$printer_name" ...
的各种组合和类似的努力,但没有成功。
您可以通过一个命令来完成此操作,如下所示:
lpstat -l -p |
awk -F ': ' -v prt="$(lpstat -d | awk '{print $NF}')" '
c && !--c && /Description:/ {print $2; exit}
$0 ~ prt {c=4}'