Если он сохраняется для последующего чтения (в bash
скрипте ), просто используйте declare -p KEY
и затем загрузите файл, чтобы прочитать его снова. Если вы хотите просто сохранить значение, используйте printf '%s\n' "$KEY"
, как если бы вы выводили любые переменные данные.
Итак,
printf '%s\n' "$KEY" >key.pem
или
printf 'BEGIN %s END\n' "$KEY" >key.pem
или что вам нужно вывести.
Ваша проблема возникает из-за того, что -n
является допустимым вариантом для echo
в bash
. Строки -e
и-E
(и их комбинации, такие как -neEne
), также вызовут проблемы в bash
по той же причине. В зависимости от того, как построен bash
, среды или параметров, символы обратной косой черты в аргументах также могут быть проблемой.
Эти и другие вопросы описаны в следующих вопросах и ответах:
Я думаю, вам понадобится место в WORDCHARS
, и, поскольку, похоже, нет способа определить правила их использования, я не уверен, что есть способ заставить это работать. Возможно, есть способ определить собственный макрос Emacs, на который может ссылаться командная строка. Если есть способ сделать что-то из этого, это выходит за рамки моего знакомства, и я бы с радостью доверился кому-то в курсе.
Это не прямой ответ на поставленный вопрос, но это то, что вы могли бы сделать в том же духе, что вы описали, используя встроенные функции (предостережения, которым необходимо следовать):
Измените метод редактора строк наvi
set -o vi
Тогда вы могли бы попытаться не забыть напечатать эту маленькую красавицу:
Esc2dF"x или Esc2dF'x в соответствии с используемыми кавычками.
С пальцев не скатывается, но по крайней мере нажать можно. повторить, если хотите.
Это просто двойной поиск экземпляра данной цитаты в обратном направлении и удаление всего, что находится на пути (без учета синтаксиса, контекста и т. д. ). Учитывая, что это была ваша командная строка, и ваш курсор лежал в конце:
echo "foo bar" baz
Вы получите
echo<space>
Или, если вы начали с
echo "foo bar" baz "boz
Вы получили бы в равной степени не -вполне -то, что -я -хотел
echo "foo bar
Вам нужно будет находиться в режиме vi
, прежде чем вы начнете печатать, поэтому вам нужно будет установить его в своем профиле или что-то в этом роде.
Наличие vi
в качестве редактора в командной строке — это что-то вроде смены парадигмы и, вероятно, будет борьбой с мышечной памятью --, а это действительно не очень весело.
Я бы, наверное, сам несколько раз нажал CtrlW .
Если вы случайно переборщите, всегда есть отмена Ctrl_.