簡體   English   中英

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM