gpt4 book ai didi

bash - 哪种形式更适合在 Bash 中使用?

转载 作者:行者123 更新时间:2023-11-29 09:16:56 25 4
gpt4 key购买 nike

我正在学习 Bash,我看到了表单

C=example

echo "$C"

给出相同的表单结果

C="example"

echo $C

我想知道将“”放在变量的赋值中还是在 $ 之后更好。或者,如果它是无动于衷的。或者,如果一个人被认为比另一个“更漂亮”。

最佳答案

如果您确定变量的值是单个单词(无空格),则可以使用 $varname${varname}。如果您不能保证这一点,那么您应该使用 "$varname""${varname}"。请注意,bash 在解释您的命令之前会进行分词,因此如果您不引用表达式,您实际上可能会遇到语法错误,例如

C="white space"
if [ -z $C ]
then
...
fi

会导致语法错误:

-bash: [: white: binary operator expected

虽然这工作正常:

C="white space"
if [ -z "$C" ]
then
...
fi

这是由于在第一个未引用的情况下变量扩展后 bash 看到了这一点:

if [ -z white space ]
then
...
fi

-z 运算符只需要一个参数,而不是两个参数。在第二个引用的案例中,bash 看到了这个:

if [ -z "white space" ]
then
...
fi

即只需一个参数即可。另请注意,在作业中使用了引号

C="white space"

因为如果你这样写也会产生错误

C=white space

因为这意味着:执行命令 space,环境包含一个添加的变量 C=white

因此,一般来说,您应该引用这些表达式,以确保您的代码对无法预料的变量值更加健壮。如果变量值来自输入、文件等,则尤其如此。删除整数变量的引号通常是安全的,或者当您只想显示变量值时,如 echo $C .

关于bash - 哪种形式更适合在 Bash 中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8285132/

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