use*_*139 9 linux bash shell echo
我试图将以下行回应到.profile中,但它仍然被许多引号或特殊字符混淆.
bind '"e[A": history-search-backward'
我已经尝试了各种各样的东西,但不能把它固定住.
这就是我目前拥有的:
sudo su -c 'echo "bind \'\"\\e[A\": history-search-backward\'" >> /etc/profile' -
这是它返回的内容:
su: user '"\e[A": does not exist
但是,如果我只是使用:
echo bind \'\"\\e[A\": history-search-backward\'" >> /home/user/testfile
它工作得很好.
我有各种各样的"sudo su -c"回声......"在我的其余部分中工作得很好.
有任何想法吗?
试试这个
sudo su -c $'echo \"bind \'\"\\e[A\": history-search-backward\'\" >> /etc/profile\' -'
Run Code Online (Sandbox Code Playgroud)
从bash手册页:
单引号之间可能不会出现单引号,即使前面有反斜杠也是如此.
引用的文本$'...'
可能包含反斜杠转义的引号,包括单引号和双引号.
另一个选择是添加一个更简单的表达式~/.inputrc
:
echo '"\e[A": history-search-backward' >> ~/.inputrc
Run Code Online (Sandbox Code Playgroud)
.inputrc
所有用户似乎都没有读取系统范围的等价物.此外,这使得密钥绑定可用于任何使用readline的程序.如果您确实想将其限制为bash,请添加条件表达式:
cat >> ~/.inputrc <<'EOF'
$if Bash
"\e[A": history-search-backward
$endif
EOF
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12067 次 |
最近记录: |