用于USB控制器连接输出的Bash脚本?

时间:2015-07-30 17:23:33

标签: bash if-statement grep output

我有一个bash脚本,可以将我的USB控制器配置为像Xbox 360控制器一样用于Steam。这是当前的脚本:

#!/bin/bash
lsmod | grep xpad

sudo xboxdrv --evdev /dev/input/event14 --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_TOP=x,BTN_TRIGGER=y,BTN_THUMB2=a,BTN_THUMB=b,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE=lt,BTN_BASE2=rt,BTN_BASE5=tl,BTN_BASE6=tr --mimic-xpad --silent &

exit 0

我想添加某种“if”“else”声明,如果脚本成功,那么通知我它有效。 但我不知道我会怎么做。

e.g

如果“脚本运行良好” 然后notify-send -t 2000 USB控制器连接成功 否则“什么都不做”

我的问题是:

1.我需要2个单独的脚本吗?一个是运行第一个,另一个是读取该脚本的输出并生成通知,还是我可以在同一个脚本中完成所有操作?

2.我如何阅读该输出?

通常在脚本运行后在终端中创建新事件后,它会告诉我新的事件编号(通常是event15)。如果不是,则会标记错误。

非常感谢任何帮助,

提前致谢

3 个答案:

答案 0 :(得分:0)

脚本1

#!/bin/bash
lsmod | grep xpad

sudo xboxdrv --evdev /dev/input/event14 --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_TOP=x,BTN_TRIGGER=y,BTN_THUMB2=a,BTN_THUMB=b,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE=lt,BTN_BASE2=rt,BTN_BASE5=tl,BTN_BASE6=tr --mimic-xpad --silent &

脚本2

#!/bin/bash
output=$(/path/to/script1)
if [ $? -eq 0 ]; then
    #do something
fi

答案 1 :(得分:0)

#!/bin/bash
lsmod | grep xpad

command1="sudo xboxdrv --evdev /dev/input/event14 --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_TOP=x,BTN_TRIGGER=y,BTN_THUMB2=a,BTN_THUMB=b,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE=lt,BTN_BASE2=rt,BTN_BASE5=tl,BTN_BASE6=tr --mimic-xpad --silent"

command2="notify-send -t 2000 USB controller connection successful" #Your command here. 

output=$(command1) && [ echo $output | grep -q "Replace this with your success output" ] && $command &

答案 2 :(得分:0)

#!/bin/bash
lsmod | grep xpad

command1=$(sudo xboxdrv --evdev /dev/input/event14 --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RX=x2,ABS_RZ=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --axismap$

command2=$(notify-send -t 2000 USB controller connection successful) #Your command here. 

output=$(command1) && [ echo $output | grep -q "Press Ctrl-c to quit" ] && $command2 &

exit 0