Как избежать ошибки sed в скрипте bash? - PullRequest
0 голосов
/ 14 июля 2020

Мне нужно добавить текст после последней строки, но я получаю эту ошибку.

Как мне избежать этой ошибки, сохраняя те же действия?

sed -i -e '$a\  containers:' -e '$a\  - name: container' -e '$a\    image: httpd' -e '$a\    ports:' -e '$a\    - containerPort: 80' /path/to/file"
                            ^-- SC2154: a is referenced but not assigned.

1 Ответ

2 голосов
/ 15 июля 2020

У вас есть завершающая двойная кавычка:

#                                                  Here --v
sed -i [...] -e '$a\    - containerPort: 80' /path/to/file"

Это, вместе с предупреждением ShellCheck, указывает, что вся команда sed на самом деле является частью строки с двойными кавычками. Вы должны больше узнать о контексте, в котором была найдена эта команда.

Например, она может быть частью более крупной конструкции, подобной этой:

ssh myhost "
  [...]
  sed -i [...] -e '$a\    - containerPort: 80' /path/to/file"

Это было бы настоящей ошибкой это приводит к сбою команды, поэтому ее не следует игнорировать. В этом случае вы избежите $ s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...