Powershell Bash/Zsh 命令中的多个参数

2024-05-09

无法在 Powershell 中运行以下 Bash/Zsh 命令:

$KeyPath = Join-Path -Path $this.Plate -ChildPath "install/tekton.key"
kubectl create secret docker-registry regcred `
    --docker-server="https://gcr.io" `
    --docker-username=_json_key `
    --docker-email="[email protected] /cdn-cgi/l/email-protection" `
    --docker-password="$(cat $KeyPath)"

我收到错误:

error: exactly one NAME is required, got 5
See 'kubectl create secret docker-registry -h' for help and examples

如果我直接在 bash 中运行此命令,它会起作用:

kubectl create secret docker-registry regcred --docker-server="https://gcr.io" --docker-username=_json_key --docker-email="[email protected] /cdn-cgi/l/email-protection" --docker-password="$(cat ./tekton.key)"

我不知道这是否是您问题的原因,但是那里有两个潜在的问题:

  • 包含空格的扩展值会导致 PowerShell 对参数加双引号作为一个整体当它在幕后重建命令行时(在 Windows 上):

    • 例如,如果$(cat $KeyPath) ($(Get-Content $KeyPath)) 扩展到one two, PowerShell 通过"--docker-password=one two"在幕后,not --docker-password="one two".

    • 这是否改变参数的含义取决于目标程序如何解析其命令行 - 我不知道是什么kubectl does.

      • 如果您确实需要解决此问题,请转义封闭的"(双引号)和 `` ``` (反引号,PowerShell 转义字符,使 PowerShell 以原始语法形式传递参数:

        • --docker-password=`"$(cat ./tekton.key)`"
      • 请注意,与 Bash 和 Zsh 等类似 POSIX 的 shell 不同,您通常会这样做not将变量引用或子表达式括在"..."以便安全通过;例如。,--foo=$someVar or --foo=$(Get-Date)工作正常,即使$someVar或输出Get-Date包含空格或通配符。

  • If file $KeyPath包含multiple线,线是用空格连接在论证中:

    • 例如,如果文件包含"a`nb`n" ("`n"作为换行符),PowerShell 将通过
      "--docker-password=a b".

    • 相比之下,类似 POSIX 的 shell(例如 Bash 或 Zsh)将保留interior换行符,同时修剪(任意数量)trailing ones.


旁注:PowerShell 的处理嵌入双引号传递给外部程序的参数被破坏 - 请参阅这个答案 https://stackoverflow.com/a/59036879/45375.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Powershell Bash/Zsh 命令中的多个参数 的相关文章

随机推荐

  • 是否有可能在 C++ 中获取 std::array 的子数组?

    我想做类似的事情 std array
  • 删除整个表格行

    有没有办法删除整个表格行 穿过整个单元格 而不仅仅是文本 我尝试过申请 text decoration line through 在列和行级别 但这只会删除文本 而不是整个单元格 有没有办法打整排 如果所有行的高度相同 最简单的方法可能是应
  • 将所有脚本参数复制到另一个变量

    我需要复制所有脚本参数并将它们传递给另一个脚本 我尝试这样做 args printargs sh args echo printargs sh args 但在这种情况下 如果我使用包含空格的参数调用我的父脚本 例如 script sh ar
  • Visual Studio Code 中的剪切行快捷方式(VS 中的 Ctrl+L)(不是删除行!)

    Visual Studio 默认情况下有快捷键 Ctrl l 剪切线 它将光标所在的行复制到剪贴板并将其删除 我在 Visual Studio Code 中找不到它 有没有办法将其添加为最终用户 我知道有Ctrl Shift K用于删除行
  • 为什么 'self.self' 在 swift 中编译并运行?

    昨天我回顾了 Swift 中的一段代码 其中包括这一行 self self someProperty 这让我很惊讶 因为这个词self被保留并用作对当前实例的引用 起初我用其他语言检查了这种现象 但都给出了错误 这并不奇怪 但是 为什么它能
  • Alexa 找不到我的技能

    我根据 Alexa Skills Kit 中提供的示例之一将 Alexa Skill 创建为 AWS Lambda Node js 应用程序 我遵循了所有说明 我的 Echo 注册的账户与我在 AWS 上的开发者账户相同 我在亚马逊开发者控
  • IE - 阻止 Iframe 中的兼容模式

    是否可以从 Iframe 中禁用 IE 兼容模式 如果我在iframehtml 这不起作用 这取决于您是否有权访问主机 父级 的 x ua 兼容元 当主机页面处于 IE9 模式或更高版本时 其状态强加于 iframe 这里有一个很好的解释
  • Python 解释器 Shell 可以与 Vi(m) 集成吗?

    我喜欢使用 bpython 但在 Ruby 中 有一个名为 Interactive editor 的 gem 它可以将 Vi m 与 Ruby shell 结合起来 从而使开发过程更加舒适 Interactive editor 的一个很好的
  • 自动移动站点重定向

    我刚刚制作了我的第一个 jQuery 移动网站 我想让使用手机查看我的 完整网站 的人自动转移到 移动网站 如果需要 还可以单击链接查看完整站点 我不知道从哪里开始 有一些我可以使用的 JavaScript 吗 如果您想查看这些网站的外观
  • 在 iframe/对象标签内运行时更新初始路由器 url

    我目前正在容器 主 Vue 应用程序的对象标签 iframe 也可以工作 内渲染 Vue 应用程序 首先 我设置一个文件服务器 为该容器或请求的子应用程序提供服务 以在 div 内呈现 为了简单起见 我将仅显示 Node Express 服
  • Redis Cluster 与 Pub/Sub 中的 ZeroMQ,用于水平扩展的分布式系统

    如果我要设计一个巨大的分布式系统 其吞吐量应随系统中的订阅者数量和通道数量线性扩展 哪个会更好 1 Redis集群 仅适用于Redis 3 0 alpha 如果是集群模式 您可以在一个节点上发布并在另一个完全不同的节点上订阅 消息将传播并到
  • 无法为 Python 3.4 创建工作虚拟环境

    I 安装Python 3 4 2 https docs python org 3 using unix html building python和我的 Linux Mint 17 1 中的 Virtualenv 12 0 5 然后我尝试创建
  • 我是否可以通过第三方支付网关为我的 iPhone 应用程序提供付款服务?

    所以我有一个 RESTful Api 服务 它有免费和付费的东西 任何人都可以利用我们的 API 创建 iPhone Andriod MSPhone 应用程序 不好的类比 假设我们正在为 Steam 创建一个聊天 api 服务 并且您可以为
  • 从通用列表中删除项目

    我有以下方法 我希望从我的收藏中删除与产品 ID 匹配的项目 看起来相当简单 但我有一个例外 基本上我的收藏已经不同步了 那么从集合中删除项目的最佳方法是什么 public void RemoveOrderItem Model Order
  • 在最后修改的区域扩展Jtree?

    我正在使用 dom4j 从 dom4j 文档创建 DocumentTreeModel 我在里面显示这个 DocumentTreeModelJScrollPane 我有一个按钮 可以将新节点添加到 dom4j 文档 并重新创建 Documen
  • 元素不存在,尽管它具有 ID 属性

    在 selenium excel vba 中 我试图了解有关如何处理 CSS 选择器的更多信息 我很想知道 因为在检查带有 ID 的元素并运行代码时 我收到一条消息 指出未找到该元素 这是到目前为止的代码 Private bot As Ne
  • DC-sunburst、dc-Menuslect、dc-Non 交互图

    我是 dc js 的新手 我对 dc 的灵活性有一些疑问 首先 我一直在寻找答案 但还没有找到任何答案 1 我正在使用 dc sunburst 图表 我想知道是否可以创建 Zoomable sunburst 因为 d3 js 实际上就是这种
  • `printf()` 中格式说明符“%qd”的用途是什么?

    我看到格式说明符 qd浏览时github https github com Microsoft clang blob master test Sema format strings c代码 然后我检查了 GCC 编译器 它工作正常 incl
  • recvfrom() 中的 addrlen 字段有何用途?

    我在程序中使用 recvfrom 从我在 src addr 中指定的服务器获取 DGRAM 数据 但是 我不确定为什么需要初始化并传入addrlen 我读了手册页 但不太明白它的意思 如果src addr不为NULL 并且底层协议提供了源地
  • Powershell Bash/Zsh 命令中的多个参数

    无法在 Powershell 中运行以下 Bash Zsh 命令 KeyPath Join Path Path this Plate ChildPath install tekton key kubectl create secret do