Shell CLI 達成 HMAC SHA256 加密
科技進步是來自於偷懶,前陣子小編剛好有投資點加密貨幣,但某些固定的操作讓人心煩。就寫了個小shell腳本自動進行買賣還有交易。但中間OKX(過去原名OKEX)API 腳本中有一段需要將產生ACCESS SIGN才能操做,苦惱了我一陣子。因為網路上寫python特別多,找到 shell 相關腳本的相較少。
…科技進步是來自於偷懶,前陣子小編剛好有投資點加密貨幣,但某些固定的操作讓人心煩。就寫了個小shell腳本自動進行買賣還有交易。但中間OKX(過去原名OKEX)API 腳本中有一段需要將產生ACCESS SIGN才能操做,苦惱了我一陣子。因為網路上寫python特別多,找到 shell 相關腳本的相較少。
…網域在 Google domains 上購買有提供 DNS 代管服務,本網站的主機是使用樹梅派架設 LEMP,對外中華電信光纖上網只有一個固定IP,使用浮動IP來對外服務每72小時就會中斷一次。
要確保網站可以提供長期服務,當偵測到IP有所變化就會自動更新主機位置給 Google 的動態 DNS,讓全世界的人都可以正確地連入 Server 。
…echo foo >> file
date >> file
cat stuff >> file
{
echo foo
date
cat stuff
} >> file
用 {} 把所有要重新定向的內容進行分組,一次性的導入 “>> file” 文件中,此寫法有兩點優勢。
第一讓代碼更簡化不用每行添加 “>> file” 進行寫入文件,第二文件只需打開及關閉一次,這代表的執行性能被提高了。
此問題僅僅是寫作風格的不同,需要忽略此提示也可以。
grep foo | wc -l
grep -c foo
grep foo * .log | wc -l
cat * .log | grep foo -c
這單純是一種程式編碼上風格問題,因 grep 可以直接進行計算無須再次利用管道方式傳送至 wc 進行運算。
檢查有無符合的匹配項目,在沒有符合的項目時(參數值==0),此情形下使用 grep -q 甚至更加清晰及高效率,例如下列示範:
if grep -q pattern file; then
echo "此文件有符合的項目"
fi
當如果執行 foo | grep bar | wc -l,在正常情形下無法顯示 grep 執行時的異常訊息,並且始終顯示執行成功,錯誤排除時難以查找問題。如果替換成 foo | grep -c bar 則在沒有匹配項目時退出會顯示 0 。
如果在特定情形下 wc 指令可以使結果更清楚,就可以忽略此寫法。
echo "Name:\t$value"
printf 'Name:\t%s\n' "$value"
特殊字元像是 \t 或是 \n 並不會被 echo 轉義成特殊字元,而會如實的列印出字面上的 \t 及 \n。但 printf 會確實的解析此類型的特殊字元,應改變使用習慣。
部分Linux 支援像是使用 echo -e ‘\t’ 和 echo$’\t’。但為了共通性應該避免使用,
printf 確實會擴展這些序列,應改為使用。如果在 VS code 中撰寫shell 腳本開頭宣告#!/bin/sh , ShellCheck 套件也會發出此警告。
如果您確實需要字面反斜線-t,請使用
echo "\\t"
無
小編最近在協助公司撰寫設備檢查 Shell Script,使用了工具 VS code 裡面有套件協助檢查編輯或是程式語法錯誤等問題。發現在編輯習慣上會導致的錯誤,也近一步得到修正,順便就把有修正的錯誤做的紀錄,提醒自己變更寫作習慣。
…在Linux 中處理大量文字 AWK 是個不可或缺的存在,缺點是使用比起其他功能複雜,要懂得使用判斷式來處理文字,但可達成快速及高效率的解決大部分的問題,也不容易遇到文字量過大時無法處理的困境。
…利用此參數是在某些大量部屬的內部及特定的外部環境中,沒有辦法使用 Github 來做定期排程的 Shell Script 控管,而需要定期排程執行的事情越來越多,於是就在思考是否可以透過簡單的 Web Server 提供版本的 HASH 值,計算本地檔案並比較 hash 值來是否有需要更新 shell Script。
…執行的腳本內容越來複雜度越高相對遇到困難的程度也越高,在執行這些腳本中產生的暫存檔案內容是不適合留下來的被任何東西讀取的。利用Linux trap 指令來在執行退出腳本前必須執行的內容,快速帶你了解 trap 此指令該如何使用 。