gpt4 book ai didi

shell - 如何在shell脚本中保留$@中的双引号?

转载 作者:行者123 更新时间:2023-12-04 01:50:10 25 4
gpt4 key购买 nike

假设我有一个非常简单的 shell 脚本“foo”:

  #!/bin/sh
echo $@

如果我像这样调用它:
  foo 1 2 3

它愉快地打印:
  1 2 3

但是,假设我的参数之一是双引号括起来并包含空格:
  foo 1 "this arg has whitespace" 3

foo 愉快地打印:
  1 this arg has whitespace 3

双引号已被删除!我知道 shell 认为它帮了我一个忙,但是......我想获得参数的原始版本,不受 shell 解释的影响。有什么办法吗?

最佳答案

首先,您可能需要 $@ 的引用版本, 即 "$@" .要感受差异,请尝试在字符串内放置多个空格。

其次,引号是 shell 语法的元素——它对你没有帮助。为了保护它们,你需要逃避它们。例子:

foo 1 "\"this arg has whitespace\"" 3

foo 1 '"this arg has whitespace"' 3

关于shell - 如何在shell脚本中保留$@中的双引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3755772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com