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

在我的 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 扩展此处文档中的变量,请不要引用终止符:

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

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

man bash

如果EOT是无引号,在这里,文件的所有行进行参数扩展,命令替换和算术扩展,字符序列<newline>被忽略,必须使用来引用字符$`


以上是bash脚本-在cat中使用和扩展变量的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>