在我們的專案中,我們有使用 windows 的開發人員和一些使用 linux 的開發人員。我們有 githooks,它使用 shebang 指向本地 Windows shell 執行程式,例如:
#!C:/Program\ Files/Git/usr/bin/sh.exe
REGEX_ISSUE_ID="[a-zA-Z0-9,\.\_\-] -[0-9] "
BRANCH_NAME=$(git symbolic-ref --short HEAD)
ISSUE_ID=$(echo "$BRANCH_NAME" | grep -o -E "$REGEX_ISSUE_ID")
LAST_COMMIT_MSG=$(git show -s --format=%s)
如您所見,shebang 指向 windows 檔案夾。這對 linux 用戶永遠不起作用。有沒有更好的方法來處理這個跨平臺作業?
uj5u.com熱心網友回復:
至少對于頂級 git hook 腳本(.git/hooks/pre-commit例如), git for windows 將解釋#!/bin/shshebang 并為腳本使用bash解釋器。
如果您隨后在該腳本中撰寫與 posix-shell 兼容的代碼,它將可以在 windows 和其他 posixly-correct 機器之間移植
根據我的經驗,撰寫正確正確的 shell 有點痛苦,所以我有條件#!/usr/bin/env bash地在其他平臺和#!/bin/shWindows源代碼上安裝該腳本
然后,我建議酌情明確呼叫其他腳本(python 等)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/477761.html
