背景
我正在使用 Terraform 和 cloud-init 来配置 Ubuntu VM。
Terraform 模板包含一个嵌入式 cloud-inituser_data
部分,其中包含用于write_file
编写 bash 脚本的指令。层次结构如下所示:
- 地形模板
- 云初始化用户数据
- 写入内容
- bash脚本
- 写入内容
- 云初始化用户数据
在 bash 脚本中,我有以下函数
mkcd() {
mkdir -p "${1}"
cd "${1}"
}
问题与疑问
当文件写入VM内部时,它看起来像这样:
mkcd() {
mkdir -p "1"
cd "1"
}
被${1}
替换为仅1
.所需的行为是让函数出现在书面文件中,与 Terraform 模板中出现的完全相同。
如何让函数像这样出现在书面文件中?:
mkcd() {
mkdir -p "${1}"
cd "${1}"
}
故障排除
我也尝试过这个:
mkcd() {
mkdir -p "$\{1}"
cd "$\{1}"
}
该文件的写入方式与所示完全相同,但保留了反斜杠。