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
我正在尝试制作一个 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