gpt4 book ai didi

linux - 如何将带有多个引号/特殊字符的行回显到文件中?

转载 作者:IT王子 更新时间:2023-10-29 00:14:04 26 4
gpt4 key购买 nike

我试图将以下行回显到 .profile 中,但它总是被许多引号或特殊字符弄糊涂。

绑定(bind) '"e[A": history-search-backward'

我已经尝试了各种方法,但还是无法搞定。

这是我目前拥有的:

sudo su -c 'echo "bind\'\"\\e[A\": history-search-backward\'">>/etc/profile' -

这是它返回的内容:

su: 用户 '"\e[A": 不存在

但如果我只是使用:

echo bind\'\"\\e[A\": history-search-backward\'">>/home/user/testfile

它工作得很好。

在我的脚本的其余部分中,我有各种各样的“sudo su -c”echo blah ...”,它们工作得很好。

有什么想法吗?

最佳答案

试试这个

sudo su -c $'echo \"bind \'\"\\e[A\": history-search-backward\'\" >> /etc/profile\' -'

来自 bash 手册页:

A single quote may not occur between single quotes, even when preceded by a backslash.

$'...' 引用的文本可能包含反斜杠转义的单引号和双引号。

另一种选择是向 ~/.inputrc 添加一个更简单的表达式:

echo '"\e[A": history-search-backward' >> ~/.inputrc

似乎没有系统范围内的 .inputrc 可以被所有用户阅读。此外,这使得键绑定(bind)可用于任何使用 readline 的程序。如果您真的想将其限制为 bash,请添加条件表达式:

cat >> ~/.inputrc <<'EOF'
$if Bash
"\e[A": history-search-backward
$endif
EOF

关于linux - 如何将带有多个引号/特殊字符的行回显到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11994796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com