gpt4 book ai didi

shell - Shell 脚本中的字符串连接错误

转载 作者:行者123 更新时间:2023-12-01 23:32:22 24 4
gpt4 key购买 nike

我是 Shell 脚本的初学者。

我使用了一个变量来存储值 A="MyScript"。我尝试在后续步骤 $A_new 中连接字符串。令我惊讶的是,它没有工作,而 $A.new 工作了。

你能帮我理解这些细节吗?

谢谢

最佳答案

shell 牌 variable names由字母字符、数字和下划线组成。

3.231 Name

In the shell command language, a word consisting solely of underscores, digits, and alphabetics from the portable character set. The first character of a name is not a digit.

因此,当您编写 $A_new 时,shell 会将下划线(和 new)解释为变量名的一部分,并扩展变量 A_new .

句号在变量名中无效,因此当 shell 解析 $A.new 以查找要扩展的变量时,它会在句号处停止并扩展 A 变量.

${A} 语法旨在允许它按预期工作。

您可以使用以下任何一项来使这项工作正常进行(按优先顺序大致排序):

  1. echo "${A}_new"
  2. echo "$A"_new
  3. echo $A\_new

最后一个是最不理想的,因为你不能引用整个字符串(或者 \ 没有被删除。所以因为你基本上应该总是引用你的变量扩展你最终可能会做echo "$A"\_new 但这最终与第 2 点没有什么不同,所以何必呢。

关于shell - Shell 脚本中的字符串连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30090404/

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