gpt4 book ai didi

Bash 变量杀死脚本执行

转载 作者:行者123 更新时间:2023-12-04 06:55:37 25 4
gpt4 key购买 nike

抱歉,如果这更适合 serverfault,但我认为它可以在编程方面学到更多。

我有一些代码进入/etc/rc.local 以检测插入的触摸屏显示器类型并在启动 X 之前更改 xorg.conf。这是一个小片段:

CURRENT_MONITOR=`ls /dev/usb | grep 'egalax_touch\|quanta_touch'`
case $CURRENT_MONITOR in
'')
CURRENT_MONITOR='none'
;;
esac

如果插入这两个触摸屏中的一个,它就可以正常工作。如果插入了任何其他监视器,它会在“CURRENT_MONITOR= ls /dev/usb | grep 'egalax_touch\|quanta_touch'”处停止。

为了测试,我接触了两个文件。一个在创建 CURRENT_MONITOR 之前,一个在 CURRENT_MONITOR 之后,并且只创建之前接触过的文件。

我不是 bash 程序员,所以这可能很明显。

最佳答案

编辑:下面的答案实际上并不正确。正确的解决方案在评论中:脚本包含 set -e ,因此失败的命令将终止脚本,并且在两个监视器都未插入 grep 的情况下,将失败。

如果 CURRENT_MONITOR 包含空格,则您的 case 语句将变为(例如)

case monitor1 monitor2 in

这是一个语法错误。您需要引用变量:
case "$CURRENT_MONITOR" in
'')
CURRENT_MONITOR='none'
;;
esac

关于Bash 变量杀死脚本执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2602331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com