我的脚本的目的是寻找USB打印机,并确保根据连接的内容填充属性文件。
我目前正在做的是:
ls -l /dev/usb | grep 'lp'
返回类似的内容:
crw-rw---- 1 root lp 180, 1 Aug 5 11:32 lp1
crw-rw---- 1 root lp 180, 2 Aug 5 11:32 lp2
我想获取lp1和lp2值,并检查我的pos.properties文件:
machine.printer=epson\:file,/dev/usb/lp2
machine.printer.3=epson\:file,/dev/usb/lp4
machine.printer.2=epson\:file,/dev/usb/lp1
表示字符串'/ dev / usb / lp1','/ dev / usb / lp2'。如果两者都匹配,则输出'OK,否则输出缺少的打印机
答案 0 :(得分:2)
ok=1
for printer in /dev/usb/lp*; do
if ! grep -wq "$printer" pos.properties; then
ok=0
echo "Missing $printer"
break
fi
done
(( ok )) && echo "OK"
根据pos.properties
的格式,您可能需要更具体的命令,例如
if ! grep -wq "$printer" <(cut -d, -f2 pos.properties); then
答案 1 :(得分:1)
您可以使用此脚本:
cd /dev/usb/
arr=(lp*)
[[ $(grep -cFf <(printf "/dev/usb/%s\n" "${arr[@]}") pos.properties) -eq ${#arr[@]} ]] &&
echo "OK" || echo "missing printer(s)"