嵌入式应用实例→电子产品量产工具→业务系统能支持配置文件中的command项(能运行command项中的脚本文件)

需求分件

配置文件如下:
在这里插入图片描述
我们现在让要程序能执行command列中的命令,即当某个按钮的状态发生变化时,它能去执行command中的脚本命令。
具体来说,这里当第一个名为led的按钮的状态发生变化时,它能去执行脚本led.sh

脚本文件led.sh

脚本文件led.sh的分析

#!/bin/sh
status=$1
if [ "$status" = "ok" ]
then
echo "led has been tested, it is ok"
fi

if [ "$status" = "err" ]
then
echo "led has been tested, it is fail"
fi

以下是对这个脚本文件的分析。

第一行代码#!/bin/sh

第一行 #!/bin/sh 称为 Shebang(或Sha-bang),它的作用是指明该脚本文件应该使用哪种解释器来执行。

具体解释:

  1. #! 组成的标记

    • #! 是特殊的标记,表示这是一个脚本文件的开头。
  2. /bin/sh

    • 指定了用 /bin/sh 作为解释器来运行该脚本。
    • /bin/sh 通常是指向 Bourne Shell 或其兼容版本(如 Dash)的符号链接。在多数现代 Linux 系统中,/bin/sh 通常较轻量,用于运行简单脚本。
  3. 作用

    • 当你运行这个脚本(例如通过 ./led.sh ok),系统会根据 #!/bin/sh 找到 /bin/sh 程序,然后使用它来解释和执行脚本的内容。
    • 如果没有这个 Shebang 标记,脚本可能无法正确执行,或需要明确指定解释器(例如 sh led.sh ok)。

简而言之#!/bin/sh 指定了该脚本应由 /bin/sh 解释器运行,是 Linux 脚本的标准开头,确保脚本能正确被系统识别和执行。

第二行代码status=$1【理解整个脚本文件功能的关键】

第二行代码 status=$1 的作用是将脚本运行时传递的第一个命令行参数赋值给变量 status

详细说明:
  1. $1

    • 表示脚本运行时传递的第一个参数。
    • 在 Shell 脚本中,$1 是一个 位置参数,代表命令行中的第一个参数。
    • 其他位置参数包括 $2(第二个参数),$3(第三个参数),以此类推。
  2. status=$1

    • $1 的值赋给变量 status
    • status 是一个普通的 Shell 变量,用于保存传递的参数值。
  3. 用法示例
    如果脚本 led.sh 是这样运行的:

    ./led.sh ok
    
    • $1 的值为 ok
    • 变量 status 被赋值为 ok,后续脚本中的 status 都会使用这个值。
示例分析:

以脚本内容为例,运行:

./led.sh ok
  • status 的值是 ok,因此脚本会执行以下分支:
    if [ "$status" = "ok" ]
    then
    echo "led has been tested, it is ok"
    fi
    

如果运行:

./led.sh err
  • status 的值是 err,脚本会执行另一分支:
    if [ "$status" = "err" ]
    then
    echo "led has been tested, it is fail"
    fi
    

脚本文件上板运行

我们要想咱们的程序能执行这个脚本文件,先要测试下这个脚本文件自身是否能够运行…
将脚本文件放于NFS文件的目录support_command

然后开发板上执行下面的运令:

cd /mnt/support_command
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值