规则
sh_binary
查看规则来源sh_binary(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, exec_compatible_with, exec_properties, features, licenses, output_licenses, restricted_to, tags, target_compatible_with, testonly, toolchains, visibility)
  sh_binary 规则用于声明可执行的 shell 脚本。
  (sh_binary 是一个用词不当的名称:其输出不一定是二进制。)此规则可确保所有依赖项都已构建,并在执行时显示在 runfiles 区域中。我们建议您将 sh_binary() 规则命名为脚本名称减去扩展名(例如 .sh);规则名称和文件名必须不同。
  sh_binary 会遵循 shebang,因此可以使用任何可用的解释器(例如
  #!/bin/zsh)
示例
对于一个没有依赖项和一些数据文件的简单 shell 脚本:
sh_binary(
    name = "foo",
    srcs = ["foo.sh"],
    data = glob(["datafiles/*.txt"]),
)
参数
| 属性 | |
|---|---|
| name | 名称;必需 相应目标的唯一名称。 | 
| deps | 标签列表;默认值为  deps的一般注释。
            此属性应用于列出其他  | 
| srcs | 标签列表;必需包含 shell 脚本的文件。 
            此属性必须是单例列表,其元素是 shell 脚本。
            此脚本必须可执行,并且可以是源文件或生成的文件。
            运行时所需的所有其他文件(无论是脚本还是数据)都属于  | 
sh_library
查看规则来源sh_library(name, deps, srcs, data, compatible_with, deprecation, distribs, exec_compatible_with, exec_properties, features, licenses, restricted_to, tags, target_compatible_with, testonly, visibility)
  此规则的主要用途是将由相关脚本(不需要编译或链接的解释型语言程序,例如 Bourne shell)组成的逻辑“库”以及这些程序在运行时需要的任何数据聚合在一起。然后,可以通过一个或多个 sh_binary 规则的 data 属性使用此类“库”。
  您可以使用 filegroup 规则来聚合数据文件。
  在解释型编程语言中,“代码”和“数据”之间并不总是存在明确的区别:毕竟,从解释器的角度来看,程序只是“数据”。因此,此规则具有三个属性,这三个属性本质上是等效的:srcs、deps 和 data。
  当前实现不会区分这些列表的元素。
  这三个属性都接受规则、源文件和生成的文件。
  不过,最好还是按照惯例使用这些属性(与其他规则一样)。
示例
sh_library(
    name = "foo",
    data = [
        ":foo_service_script",  # an sh_binary with srcs
        ":deploy_foo",  # another sh_binary with srcs
    ],
)
参数
| 属性 | |
|---|---|
| name | 名称;必需 相应目标的唯一名称。 | 
| deps | 标签列表;默认值为  deps的一般注释。
            此属性应用于列出其他  | 
| srcs | 标签列表;默认值为  
          此属性应用于列出属于相应库的 shell 脚本源文件。脚本可以使用 shell 的  | 
sh_test
查看规则来源sh_test(name, deps, srcs, data, args, compatible_with, deprecation, distribs, env, env_inherit, exec_compatible_with, exec_properties, features, flaky, licenses, local, restricted_to, shard_count, size, tags, target_compatible_with, testonly, timeout, toolchains, visibility)
sh_test() 规则会创建以 Bourne shell 脚本形式编写的测试。
示例
sh_test(
    name = "foo_integration_test",
    size = "small",
    srcs = ["foo_integration_test.sh"],
    deps = [":foo_sh_lib"],
    data = glob(["testdata/*.txt"]),
)
参数
| 属性 | |
|---|---|
| name | 名称;必需 相应目标的唯一名称。 | 
| deps | 标签列表;默认值为  deps的一般注释。
            此属性应用于列出其他  | 
| srcs | 标签列表;必需包含 shell 脚本的文件。 
            此属性必须是单例列表,其元素是 shell 脚本。
            此脚本必须可执行,并且可以是源文件或生成的文件。
            运行时所需的所有其他文件(无论是脚本还是数据)都属于  |