【发布时间】:2019-03-29 11:03:30
【问题描述】:
我正在编写一个 shell 脚本,每次我得到一台新机器时,它都会按照我喜欢的方式设置我的 osx 机器。我真正喜欢的一种命令行糖是'up arrow bash history search'。正如询问 ubuntu 帖子所说,添加以下行:
bind '"\e[A":history-search-backward'
我的~/.bashrc 会为我做这件事,但是,我希望从我的脚本中自动完成...
为了实现它,我使用 printf 取得了最大的成功,但我需要在绑定 ('"\e) 后立即转义引号和转义序列,例如:
printf "bind \'\"\\e[A\":history-search-backward\'" >> ~/.bashrc
但在那个例子中,转义序列没有转义,所以在我的~/.bashrc 中我得到了这条线:
bind '"^[[A":history-search-backward'
我尝试了许多不同的引用/转义/插值组合,但收效甚微,有没有人有一些字符转义 foo 可以实现这一点,甚至只是解释为什么这不起作用,谷歌特别薄弱尤其是在\e 转义周围。
【问题讨论】:
-
当你想写任意字符串时,省去麻烦,使用here document
标签: bash shell escaping printf heredoc