gpt4 book ai didi

bash - bash 如何知道我的变量名在哪里结束?

转载 作者:行者123 更新时间:2023-11-29 08:44:40 24 4
gpt4 key购买 nike

给定:

myvar=Hello
  • echo $myvar -> 显示Hello(到目前为止一切正常)
  • echo $myvar#world -> 显示 Hello#world(为什么?我以为它会提示这里没有这样的变量叫做 myvar#world)
  • echo ${myvar#world} -> 只显示 Hello(再次强调,为什么?)

最佳答案

第二种情况分为三个部分:

[echo] [$myvar][#world]
1 2 3

第 1 部分是命令,第 2 部分是参数,第 3 部分是字符串文字。参数在 r 上停止,因为 # 不能是变量名的一部分(#'s 不允许出现在变量名中。)

Shell 解析器将以 $ 识别参数名称的开始,并以任何不能成为变量名称一部分的字符结束。通常在变量名中只允许使用字母、数字和下划线,任何其他内容都会告诉 shell 您已完成指定变量名。

所有这些都将打印出 $myvar 后跟六个文字字符:

echo $myvar world
echo $myvar?world
echo $myvar#world

如果你想把可以作为参数一部分的字符直接放在参数后面,你可以用大括号括住参数名,像这样:

myvar=hello
echo ${myvar}world

打印出:

helloworld

第三个案例是substring removal , 除了没有匹配。要让它做一些有趣的事情,试试这个:

myvar="Hello World"
echo ${myvar#Hello }

它只打印 World

关于bash - bash 如何知道我的变量名在哪里结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3497202/

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