Я нахожусь в процессе написания сценария оболочки, который настраивает мой компьютер osx точно так, как мне нравится каждый раз, когда я получаю новый компьютер.Один кусочек сахара командной строки, который мне действительно нравится, это поиск по истории bash .Как говорится в посте ask ubuntu, добавление строки:
bind '"\e[A":history-search-backward'
к моему ~/.bashrc
сделает это для меня, но я бы хотел, чтобы это автоматизировалось из моего сценария ...
Для достижения этого у меня был наибольший успех с printf, но мне нужно экранировать кавычки и escape-последовательность сразу после bind ('"\e
), что-то вроде:
printf "bind \'\"\\e[A\":history-search-backward\'" >> ~/.bashrc
, но в этом примереescape-последовательность не экранируется, поэтому в моем ~/.bashrc
я получаю строку:
bind '"^[[A":history-search-backward'
Я пробовал множество различных комбинаций цитирования / экранирования / интерполяции и имел небольшой успех, у кого-нибудь есть экранирование некоторых символовfoo, который может добиться этого или даже просто объяснение того, почему это не сработает, Google особенно остро стоит перед этим, особенно во время побега \e
.