gpt4 book ai didi

bash 脚本 - 在 cat 中使用和扩展变量

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

在我的 bash 脚本中我有这个:

myapphome=/home/username/Documents/myapp

cat << 'EOT' > "$myapphome"/some.properties
dir.root="$myapphome"/app_data
EOT

预期在 some.properties 中:

dir.root=/home/username/Documents/myapp/app_data

但实际上是:

dir.root="$myapphome"/app_data

我在这里做错了什么?我的意思是我想在我的 some.properties 文件中扩展 $myapphome。

最佳答案

如果你想让 bash 扩展 here 文档中的变量,不要引用终止符:

cat << EOT > "$myapphome"/some.properties
dir.root=$myapphome/app_data
EOT

此外,从此处文档中删除双引号,它们不会被扩展删除。

参见 man bash :

If EOT is unquoted, all lines of the here-document are subjected to parameter expansion, command substitution, and arithmetic expansion, the character sequence \<newline> is ignored, and \ must be used to quote the characters \, $, and `.

关于bash 脚本 - 在 cat 中使用和扩展变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65011495/

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