停止cloud-init userdata的write_file内容中的参数扩展

停止cloud-init userdata的write_file内容中的参数扩展

背景

我正在使用 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}"
        }

该文件的写入方式与所示完全相同,但保留了反斜杠。

相关内容