首页 > 解决方案 > 如何使用shell脚本附加一些具有变量名的行

问题描述

我想使用 tee 命令使用 bash 脚本创建/追加一个文件,但是我想在具有变量名的文件中添加/追加的行。当我执行该脚本时,它将显示空白代替变量名,但我想要那个变量名在那儿。我的脚本是 append.sh 具有以下代码

#!/bin/bash
tee config.json <<EOL
"metrics": {
                "append_dimensions": {
                        "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
                        "ImageId": "${aws:ImageId}",
                        "InstanceId": "${aws:InstanceId}",
                        "InstanceType": "${aws:InstanceType}"
                },
EOL

现在,当我执行命令“cat config.json”时,它显示空白代替变量名 (${aws:AutoScalingGroupName}) 等。

`"metrics": {
        "append_dimensions": {
            "AutoScalingGroupName": "",
            "ImageId": "",
            "InstanceId": "",
            "InstanceType": ""
        },`

但我想要所有的行,就像我在脚本中写的那样请告诉我我是如何实现这一点的。

标签: linuxshellappendcattee

解决方案


您需要EOL在它介绍的此处文档中引用以禁用扩展。喜欢:

tee config.json <<'EOL'
"metrics": {
                "append_dimensions": {
                        "AutoScalingGroupName": "**${aws:AutoScalingGroupName}**",
                        "ImageId": "**${aws:ImageId}**",
                        "InstanceId": "**${aws:InstanceId}**",
                        "InstanceType": "**${aws:InstanceType}**"
                },
EOL

推荐阅读