gpt4 book ai didi

shell - shell脚本中大括号{}和中括号()的区别

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

我们使用大括号{}来表示变量表达式,例如

NAME="test"

FILE_NAME=${NAME}file

但是我不明白我们在什么场景下使用括号()假设 nslookup $(hostname) 仅适用于 () 括号。

谁能解释一下吗?

最佳答案

首先是小挑剔:

  • 方括号[]
  • 括号()
  • 大括号{}
  • (双引号)""
  • (单个)引号(撇号)''
  • 反引号``(与波形符〜键相同)

BASh 脚本中使用大括号进行复杂的变量扩展。考虑字符串连接:

STR="hello"
STR2=$STR

STR2 计算结果为“hello”。如果你想让它像“helloWorld”那样怎么办?执行诸如 STR2="$STR2World" 之类的操作是行不通的,因此您使用大括号,即:STR2="${STR}World"

对于方括号,它们的使用类似于反引号`,它将它们之间的文本展开为命令的文本输出。

如果您想将当前时间存储为字符串怎么办?

STR2=$(date)

现在 STR2 存储字符串“Thu May 7 09:32:06 PDT 2015”。

Additionally, you can use parentheses to execute something in a subshell,这可能会影响您的环境、PID 等。对于您想要一个“一次性”环境且必须通过 pushd/popd 跟踪/恢复环境变量、目录的情况非常有用> 而不是 cd

关于shell - shell脚本中大括号{}和中括号()的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30106758/

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