根据目录中的现有文件运行linux命令

时间:2015-03-04 16:13:29

标签: linux bash directory

/dev/usb目录中,有时我会lp0,有时会lp1。如何更改以下命令以更改--name 根据{{​​1}}的内容?即如果我在/dev/usb目录中有lp0

/dev/usb

如果/ dev / usb /目录中有lp1:

TEST=`udevadm info --attribute-walk --name=/dev/usb/lp0 | grep "serial}==\"VL" | sed -n -e 's/^.*serial}==\"VL//p' | sed 's/\"//g'`

如何将/ dev / usb的内容保存在变量(lp0或lp1)中,然后在上面的命令中使用它?

2 个答案:

答案 0 :(得分:0)

您可以按如下方式测试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 ...)

答案 1 :(得分:0)

你可以写:

lp=( /dev/usb/lp? )
TEST=$( udevadm info --attribute-walk --name=${f[0]} ... )

?通配符匹配任何1个字符。