Как добавить несколько строк, имеющих имя переменной, используя скрипт оболочки - PullRequest
0 голосов
/ 12 марта 2020

Я хочу создать / добавить файл, используя скрипт bash, используя команду tee, но строки, которые я хочу добавить / добавить в файл, имеющий переменную name.when, когда я выполняю этот скрипт, он показывает пустое вместо имени переменной, но я хочу это имя переменной, как оно есть. Мой сценарий добавляется. 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} ) et c.

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

Но я хочу, чтобы все строки были такими, какими они есть в сценарии. Пожалуйста, скажите, как мне этого добиться.

1 Ответ

1 голос
/ 12 марта 2020

Вам необходимо указать EOL, чтобы отключить расширения в представленном здесь документе. Нравится:

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