当前位置: 首页 > 知识库问答 >
问题:

bash脚本代码未正确运行[重复]

牛枫
2023-03-14

下面的代码不能正常工作,总是打印第一个elifecho。这是在bbb上运行的。有人能找到错误吗?我知道这很愚蠢,但我找不到。

#!/bin/bash

#bashUSR.sh


path=/sys/class/leds/beaglebone:green:usr

echo "starting the LED bash script."

if [ "$#" == 0 ]; then
        echo "to few arguments. enter either 0 or 1 followed by on or off."
        exit 2

elif [ "$2" != "on" ] || [ "$2" != "off" ]; then
        echo "invalid second argument. please input either on or off."

elif [ "$1" == "0" ] && [ "$2" == "on" ]; then
        echo "turning on usr0 LED."
        export path0/brightness 1

elif [ "$1" == "0" ] && [ "$2" == "off" ]; then
        echo "turning off usr0 LED."
        export path0/brightness 0

elif [ "$1" == "1" ] && [ "$2" == "on" ]; then
        echo "turning on usr1 LED."
        export path1/brightness 1

elif [ "$1" == "1" ] && [ "$2" == "off" ]; then
        echo "turning off usr1 LED."
        export path1/brightness 0

else
        echo "invalid user number. please input a number between 0 and 1."
fi

共有1个答案

岳劲
2023-03-14

替换:

elif [ "$2" != "on" ] || [ "$2" != "off" ]; then
        echo "invalid second argument. please input either on or off."

与:

elif [ "$2" != "on" ] && [ "$2" != "off" ]; then
        echo "invalid second argument. please input either on or off."

这个逻辑测试总是正确的:

[ "$2" != "on" ] || [ "$2" != "off" ]

无论$2的值是多少,上述两个测试中的一个将为真。因为这两者都是用逻辑or连接的,所以整个语句都是正确的。

我怀疑你想要的是:

[ "$2" != "on" ] && [ "$2" != "off" ]

让我们测试一下$2的三个值:

for x in on off other
do
    set -- 1 "$x"
    if [ "$2" != "on" ] && [ "$2" != "off" ]
    then
        echo "$2 is bad"
    else
        echo "$2 is OK"
    fi
done

以上代码产生:

on is OK
off is OK
other is bad

 类似资料:
  • 有一个网站有一个按钮,点击该按钮应该有一个bash脚本,该脚本假设卸载一个目录。该按钮调用php脚本,带此函数: 我的问题是:当im在shell中运行命令时: 它很好用。 当我单击按钮时,会出现测试,但它不会运行脚本。如何查看日志?我可以将日志打印到shell吗?我不能,因为它被激活使用html上的按钮 我想这是权限问题?

  • 我创建了一个简单的测试脚本。我可以使用,但当我尝试sudo时/测验sh我收到一个错误。 测试内容。上海: 文件权限: 运行脚本: 使用sudo运行脚本: 为什么会发生这种情况?

  • 我想从python脚本内部运行下面的bash脚本。 我的python脚本/函数如下所示 但是,我收到以下错误 - 我正在使用集群,我的系统规格如下 - 如果我遗漏了什么,请告诉我。我的基本问题是如何从给定的python脚本运行另一个python script,特别是当我们需要激活和停用虚拟环境时,因为由于一些依赖冲突,父python script和子python cript需要两个不同的虚拟环境。

  • 问题内容: 我想尝试使用npm为Web应用程序运行各种构建任务。我知道我可以这样添加一个字段来做到这一点: 当您使用带有许多选项的更复杂的命令时,这变得很笨拙。是否有可能将这些命令移至bash脚本或类似的东西?就像是: 在文件中的哪里执行命令? 阅读这篇文章似乎是这样,但是我不清楚我应该在哪里放置文件或者丢失了什么。 问题答案: 完全有可能… 另外,请确保在bash文件的顶部放置一个哈希爆炸 还请

  • 问题内容: 我快要解决这个问题了。 下面是代码: 问题答案: 您的代码是正确的,我相信您不会收到异常,如果您使用进行阅读,则不会得到任何东西。 已经说过,现在命令是100%以这种方式执行,这是因为您正在回显某些内容,需要使用来将其读回。 检查以下示例,该示例将成功创建一个名目录并打印您正在回显的内容。为了将其放入日志文件,恐怕您可以使用“>”来完成它,您可能必须使用一些编辑器命令或使用Java创建

  • 这是我第一次在java中尝试python。我试图从我的代码中执行python脚本,如下所示。 但我有以下例外 无法运行程序“python”:CreateProcess error=2,系统找不到指定的文件 我已经安装了python。我不确定为什么找不到该文件。我试着跟随这个链接,但它并没有解决我的问题。 提前谢谢。 编辑1 我尝试了“Viacheslav Vedenin”给出的示例代码,当我执行我