2018年5月24日 星期四

[shell script] shell script 的Debug方法

假設有一支Shell script 名為TEST.sh,我們可以使用下面的指令來作Debug

sh -x TEST.sh

執行下去之後,會印出整個shell執行的內容與過程,透過這些內容,你可以發現是否有哪些變數寫錯了~

2018年5月16日 星期三

[shell script] 將script 指令指派給變數的方法,變數可取得回傳值

兩種方法可以達到此目的

1. 變數=`command`
ex:
     nowDate=`date  +%s`


2. 變數=$(command)
ex:
    nowDate2=$(date +%s)



寫一個測試shell script
========== command.sh =============
#!/bin/sh
nowDate=`date +%s`
nowDate2=$(date +%s)

echo "nowDate=$nowDate"
echo "nowDate2=$nowDate2"
=================================

實際測試結果,如下圖:



[Linux] Linux中設定rtc alarm時發生 "Device or resource busy" 的解決方法

今天在驗証rtc alarm的功能,我們使用shell script來完成,驗證此功能的步驟大概如下

1. 使用 nowDate=`date +%s`來取得目前rtc時間,並且先存放在變數 nowDate

2. 把關機之後預計幾秒後使用 rtc alarm 把系統叫起,假設10s後叫起,我們會使用 wakeDate=`expr $nowDate + $defaultAlarm` ,把變數存放在變數wakeDate

3. 再來就是把wakeDate存放到你rtc alarm再Linux當中所開出來的介面,rtcPath=/sys/class/rtc/rtc0/wakealarm
echo "$wakeDate" > "$rtcPath"

上面的作法我發現,常常在寫入rtc alarm interface的時候,會出現 sh: write error: Device or resource busy 的錯誤訊息,而導致$wakeDate沒有正確的寫入

4. 後來發現,原來寫入之前必須先清空rtc alarm的內容,因此在設定之前必定先加入下面這行
echo 0 > "$rtcPath"


這樣便沒有問題了!!

2018年5月15日 星期二

[汽機車] 機車換電瓶DIY,sym 風100 efi

今日主角:





















今天幫家裡的機車換了電瓶,其實換電瓶很簡單,沒有經驗的人也可以1個小時內完成。

首先介紹sym的風100 efi,所使用的電瓶為GS牌型號是GTX7A-BS,你只需要去電池的材料行,跟老闆說要買這個型號的就行了














上圖這顆是舊的電瓶,看上面紀錄的日期,也已經用了7年 @@"都沒有更換,也算是壽終正寢了


接下來準備換上新的電池,這台機車電瓶放置的位置在腳踏墊下方,只需拆卸四顆螺絲,就可以把存放電池的朔膠蓋打開,如下圖,紅圈是螺絲的地方,踏墊底下也有兩顆螺絲




























打開後必須先把舊電瓶移除,請先拆負極(黑色線)再拆正極(紅色線)

接下來要安裝新的電瓶,紅色線安裝在電瓶的 + ,黑色線安裝在電瓶的 -,安裝順序先鎖緊正極(紅色線),再去鎖負極(黑色線)

裝好後再把蓋子鎖回去即可

店面買這一顆電池,差不多要$600,網購可以更便宜,如果直接給機車行換,至少要$800吧!

*註: 換下的電瓶,可自行拿去資源回收場,可以賣30元左右

2018年5月4日 星期五

[Windows] BAT批次檔開啟後,不關閉視窗的方法,還可以繼續下命令

EX: 我寫一個批次檔執行 ipconfig 來印出電腦的ip資訊

請使用滑鼠點擊這個寫好的批次檔,是不是一閃而過,甚麼都沒看到 ...


解決方法:
cmd /k ipconfig


只要按照上面寫法,執行完ipconfig之後,視窗不會關閉,還可以繼續下別的命令~

所以解答就是加上 "cmd /k" 就可以了