跳轉到內容

Puredyne/編碼風格

來自華夏公益教科書,開放的書籍,為開放的世界

Shell 指令碼

[編輯 | 編輯原始碼]

本指南主要參考了 Debian Live 編碼風格.

相容性

[編輯 | 編輯原始碼]
  • 不要使用 Bash shell 獨有的語法或語義。例如,使用陣列結構。
  • 只使用 POSIX 子集 - 例如,使用 $(foo) 而不是 `foo`
  • 您可以使用 'sh -n' 和 'checkbashisms' 檢查您的指令碼
  • 始終使用製表符而不是空格。
  • 通常,行最大為 80 個字元。
  • 使用“Linux 風格”的換行
  # Bad:
  if foo; then
      bar
  fi

  # Good:
  if foo
  then
      bar
  fi
  • 函式也是如此
  #Bad:
  foo () {
      bar
  }

  #Good:
  foo ()
  {
      bar
  }
  • 變數始終使用大寫字母。
  • 使用大括號括起變數;例如,寫 ${FOO} 而不是 $FOO
  • 始終保護變數,使其不受潛在空格的影響,寫 "${FOO}" 而不是 ${FOO}
  • 為了保持一致性,在給變數賦值時始終使用引號
  #Bad:
  FOO=bar

  #Good:
  FOO="bar"
  • 如果使用多個變數,請引用整個表示式
  #Bad:
  if [ -f "${FOO}"/foo/"${BAR}"/bar ]
  then
      foobar
  fi

  #Good:
  if [ -f "${FOO}/foo/${BAR}/bar" ]
  then
      foobar
  fi
  • 在呼叫 sed 時,使用 | 作為分隔符,例如 sed -e 's|foo|bar|'
  • 不要使用 test 命令進行比較或測試,使用 [ ],例如 if [ -x /bin/foo ]; ... 而不是 if test -x /bin/foo; ...
華夏公益教科書