Sh 規則

回報問題 查看原始碼 Nightly · 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

規則

sh_binary

查看規則來源
sh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, output_licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

sh_binary 規則是用來宣告可執行的殼層指令碼。(sh_binary 是個誤稱:其輸出內容不一定是二進位檔)。這項規則可確保系統建構了所有依附元件,且會在執行作業時顯示在 runfiles 區域中。建議您將 sh_binary() 規則命名為指令碼的名稱減去副檔名 (例如 .sh),規則名稱和檔案名稱必須不重複。sh_binary 尊重剪裁,因此可以使用任何可用的翻譯服務,例如 #!/bin/zsh)

範例

對於沒有依附元件和一些資料檔案的簡單 Shell 指令碼:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

引數

屬性
name

名稱;必填

這個目標的專屬名稱。

deps

標籤清單;預設為 []

要匯入至這個目標的「library」目標清單。如要查看 deps 的一般註解,請參閱「大多數建構規則定義的常見屬性」。

這個屬性應用於列出其他 sh_library 規則,這些規則會提供 srcs 中程式碼所依賴的解譯程式原始碼。這些規則提供的檔案會出現在這個目標的 runfiles 中。

srcs

標籤清單;預設為 []

輸入檔案清單。

這項屬性應用於列出屬於此程式庫的殼層指令碼原始碼檔案。指令碼可使用殼層的 source. 指令載入其他指令碼。

env_inherit

字串清單;預設為 []

sh_library

查看規則來源
sh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)

這項規則的主要用途是匯總邏輯「程式庫」,其中包含相關指令碼 (以不需編譯或連結的解譯語言編寫的程式,例如 Bourne 殼層),以及這些程式在執行階段所需的任何資料。接著,您可以從一或多個 sh_binary 規則的 data 屬性使用這類「程式庫」。

您可以使用 filegroup 規則匯總資料檔案。

在解譯程式設計語言中,「程式碼」和「資料」之間無法一直有明確區別。畢竟程式從直譯器的角度來看「資料」。因此,這個規則有三個屬性,且本質上都相同:srcsdepsdata。目前的實作方式不會區分這些清單的元素。這三個屬性都接受規則、來源檔案和產生的檔案。不過,建議您按照屬性慣用用途使用屬性 (如同其他規則)。

範例

sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)

引數

屬性
name

名稱 (必填)

這個目標的專屬名稱。

deps

標籤清單;預設為 []

要匯入至這個目標的「library」目標清單。如要查看 deps 的一般註解,請參閱「大多數建構規則定義的常見屬性」。

這個屬性應用於列出其他 sh_library 規則,這些規則會提供 srcs 中程式碼所依賴的解譯程式原始碼。這些規則提供的檔案會出現在這個目標的 runfiles 中。

srcs

標籤清單;預設為 []

輸入檔案清單。

這項屬性應用於列出屬於此程式庫的殼層指令碼原始碼檔案。指令碼可使用殼層的 source. 指令載入其他指令碼。

sh_test

查看規則來源
sh_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)

sh_binary 規則用於宣告可執行的 Shell 指令碼。(sh_binary 是個誤稱:其輸出內容不一定是二進位檔)。這項規則可確保所有依附元件都已建構,並在執行時顯示在 runfiles 區域中。建議您在指令碼名稱後方加上副檔名 (例如 .sh),並以此命名 sh_binary() 規則;規則名稱和檔案名稱必須不同。sh_binary 會遵循 shebangs,因此可使用任何可用的轉譯器 (例如#!/bin/zsh)

範例

對於沒有依附元件和一些資料檔案的簡單 Shell 指令碼:

sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)

引數

屬性
name

名稱;必填

這個目標的專屬名稱。

deps

標籤清單;預設為 []

要匯入至這個目標的「library」目標清單。如要查看 deps 的一般註解,請參閱「大多數建構規則定義的常見屬性」。

這個屬性應用於列出其他 sh_library 規則,這些規則會提供 srcs 中程式碼所依賴的解譯程式原始碼。這些規則提供的檔案會出現在這個目標的 runfiles 中。

srcs

標籤清單;預設為 []

輸入檔案清單。

這項屬性應用於列出屬於此程式庫的殼層指令碼原始碼檔案。指令碼可以使用殼層的 source. 指令載入其他指令碼。