Во-первых, вы не хотите, чтобы это были два отдельно перенаправленных оператора echo
- это неэффективно и означает, что строки могут оказаться не рядом друг с другом, если что-то еще добавляет в одно и то же время .
Во-вторых, и что еще более важно, вы не хотите, чтобы удаленная команда запускалась как нечто, что могло бы избежать его кавычек и запускать на вашем сервере произвольные команды (подумайте, $1
- '$(rm -rf /)'.spammer.com
).
Вместо этого рассмотрим:
#!/bin/bash
# ^ above is mandatory, since we use features not found in #!/bin/sh
printf -v new_contents \
'# date added %s\nzone "%s" { type master; file "/etc/zone/dummy-block"; };\n' \
"$(date +%m/%d/%Y)" \
"$1"
printf -v remote_command \
'echo %q >>/var/named/chroot/etc/named.conf' \
"$new_contents"
ssh root@192.168.0.1 bash <<<"$remote_command"
printf %q
выводит данные таким образом, что прохождение оценки в другой оболочке bash будет оценивать это содержимое обратно к себе. Таким образом, удаленная оболочка будет гарантирована (до тех пор, пока это bash) правильно интерпретировать контент , даже если контент пытается избежать его окружающих кавычек .
Я нашел способ сделать это, но = - =
<p>{{$moment(chapter.createdAt).fromNow()}}</p>
Я просто установил nuxt / момент и использовал его непосредственно в шаблоне!