Bash 在系统启动时执行命令的脚本

Bash script to execute commands on system boot up

我正在尝试制作一个 bash 脚本来检查两个数据值和天气是否将它们设置为 1 或 0 我想做点什么。这些值通常在系统启动时设置,通常在系统完全启动后定义(这就是为什么我使用 while 循环来不断检查直到它被定义):

到目前为止我有这个,但我收到一个错误:

#!/bin/bash

shopt -s expand_aliases

alias gd126='gdget 126' # output is either 1 or 0
alias gd3='gdget 3'     # output is either 1 or 0
alias gd5='gdset 5 1'   # set this data to 1 

gd126  
gd3     


while true; do
        if [ gd126 -eq 0 ] && [ gd3 -eq 1 ]; then
                gd5; break;
        fi;
done

这是我 运行 myScript.sh:

时的输出
[root@server tmp]# ./myScript.sh
0
0
./myScript.sh: [: gd126: integer expression expected
./myScript.sh: [: gd126: integer expression expected

有人能告诉我为什么吗?我尝试将“-eq”更改为“==”,它就停在那里没有输出。

使用别名时没有幸福的结局,尤其是在脚本中。改用函数。在任何情况下,如果您想要命令的输出而不是命令名称本身,请使用 "$(somecommand)"

#!/bin/bash
gd126() {
    gdget 126
}

if [ "$(gd126)" -eq 0 ]
then
  echo "It's 0"
fi