[英]run linux command succeed but failed in .sh file. “No such file or directory ”
[英]Run linux command based on existing file in a directory
在/dev/usb
目录中有时我有lp0
,有时lp1
。 如何更改以下命令以根据/dev/usb
的内容更改--name
? 即如果我在/dev/usb
目录中有lp0
,我得到:
TEST=`udevadm info --attribute-walk --name=/dev/usb/lp0 | grep "serial}==\"VL" | sed -n -e 's/^.*serial}==\"VL//p' | sed 's/\"//g'`
如果/ dev / usb /目录中有lp1:
TEST=`udevadm info --attribute-walk --name=/dev/usb/lp1 | grep "serial}==\"VL" | sed -n -e 's/^.*serial}==\"VL//p' | sed 's/\"//g'`
如何将/ dev / usb的内容保存在变量(lp0或lp1)中,然后在上面的命令中使用它?
您可以按如下方式测试lpX设备的可读性:
if test -r /dev/usb/lp0; then
NAME=/dev/usb/lp0
elif test -r /dev/usb/lp1; then
NAME=/dev/usb/lp1
else
printf '%s\n' "could not find lp0 or lp1" >&2
exit 1
fi
TEST=$(udevadm info --attribute-walk --name=$NAME ...)
你可以写:
lp=( /dev/usb/lp? )
TEST=$( udevadm info --attribute-walk --name=${f[0]} ... )
的?
通配符匹配任何1个字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.