运行 linux 命令基于目录中的现有文件
Run linux command based on existing file in a directory
在 /dev/usb
目录中,有时我有 lp0
,有时 lp1
。如何更改以下命令以更改 --name
基于 /dev/usb
的内容? IE。如果我在 /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 个字符。
在 /dev/usb
目录中,有时我有 lp0
,有时 lp1
。如何更改以下命令以更改 --name
基于 /dev/usb
的内容? IE。如果我在 /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 个字符。