Bash - 这叫做定义吗?

Bash - is this called a definition?

我对 bash、

还很陌生

我学会了如何使用这样的变量:

var=$(cat << EOF
this is echoed
and this as well...
EOF
)

echo "$var"

如果使用 variable 调用上面的代码,您如何调用下面的方法?这叫 a using a definition?

def="This should be echoed\nand this as well...\n"

printf "$def"

我问的是第二种方法的正确术语。

vardef都是变量;也就是说,它们是您当前环境中的字符串数据的名称,在您的示例中使用 $ 进行访问。

要创建每个变量,您分配一个字符串给它。这称为 分配 。从句法上讲,= 赋值运算符 .

一旦分配了vardef,它们存储数据的方式就没有区别;每种情况下存储的数据都只是一个字符串。

def 的分配中没有任何 "special" 需要额外的术语。但是,var 作业有两个有趣的方面:​​

  • 正如评论中提到的,您对 cat 的使用是一种称为 "here document" 的模式。
  • 要创建和捕获 "document"(这只是一个字符串),您使用的是 $(),它是 "command substitution".
  • 的一种形式