'set -e'/'set -o errexit':令你的指令碼有命令失敗時,退出指令碼
'command || true': 如果你允許命令失敗
'set -u'/'set -o nounset': 當指令碼中存在未定義的變數時,退出指令碼
'-o pipefail':如果指令碼中存在管道,則捕獲管道失敗,如果失敗則退出並返回非0值。
'#!/usr/bin/env bash'比'#!/bin/bash'更輕便
if [ "$" = "kevin" ]
中並不需要雙等號,但需要雙引號
測試乙個變數是否已定義,使用if [ "$" = "kevin" ]
或者[ "$" = "kevin" ]
在檔案開始就配置例如當前路徑等魔法變數
依據這些實踐,我們的bshell樣歷為:
#!/usr/bin/env bash
set -o errexit
set -o pipefail
set -o nounset
# set -o xtrace
# set magic variables for current file & dir
__dir="$(cd "$(dirname "$")" && pwd)"
__file="$/$(basename "$")"
__base="$(basename $ .sh)"
arg1="$"
C程式設計最佳實踐
意想不到的麻煩。各種 c 實現通常在某些方面各有不同。堅持使用語言中可能對所有實現都是公共的部分會有幫助。通過這樣做,您更容易將程式移植到新的機器或編譯器,並且不大會遇到編譯器特殊性所帶來的問題。例如,考慮字串 2 1 這裡利用了 最大適合 maximal munch 規則。如果可以巢狀注釋,則可將...
java程式設計最佳實踐
不應該像下面這樣 string ordername urlencoder.encode 這裡是中文 constant.charset utf finally語句只能做如下事件 1 關閉io資源,比如關閉inputstream或socket 2 只做列印錯誤資訊,捕獲異常,不要丟擲異常 儲存在資料庫中...
JS程式設計最佳實踐
最近花了一周時間把 編寫可維護的js 閱讀了一遍,現將全書提到的js程式設計最佳實踐總結如下,已追來者!1.return 之後不可直接換行,否則會導致asi 自動分號插入機制 會在return 後插入乙個分號。2.一行語句最多不超過80個字元,如果超過則應該在運算子後換行,並且追加兩個縮排。3.採用...