我有一个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)。如果不是,则会标记错误。
非常感谢任何帮助,
提前致谢
答案 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