0
我試圖建立一個別名,在我的.bashrc文件,如下面:逃逸單引號的別名內部在bash
clear && printf '\033[3J'
但下面不工作
alias clall= "clear && printf \'\033[3J\'"
alias clall= "clear \&\& printf \'\\033\[3J\'"
我試圖建立一個別名,在我的.bashrc文件,如下面:逃逸單引號的別名內部在bash
clear && printf '\033[3J'
但下面不工作
alias clall= "clear && printf \'\033[3J\'"
alias clall= "clear \&\& printf \'\\033\[3J\'"
一般關於別名的規則是,如果你有關於如何使用它們的問題(或者它們是否足夠用於你的目的),你應該使用一個函數。一個函數給你所有的能力(相當多的,對於這個問題),並且不需要任何報價/轉義語法:
clall() { clear && printf '\033[3J'; }
這就是說,一個方法來指定要的是別名以下的bash擴展語法:
# use $'' to make \' and '' valid/meaningful
alias clall=$'clear && printf \'\\033[3J\''
...其使用$''
以允許單引號(和反斜槓)單引號內轉義;在正常的''
引用下,包含的反斜槓是文字。更POSIX-Y的做法是:
# use '"'"' to put a literal single-quote inside syntactic single-quotes
alias clall='clear && printf '"'"'\033[3J'"'"''
...或者,如果(這裏)你沒有這特殊的雙引號內的任何語法:
# ...or just use double quotes for the whole thing, absent a reason not to
# ...using command substitution, paramater expansion, etc. would be such a reason.
alias clall="clear && printf '\033[3J'"
謝謝你這麼多 – user2567338
如果這會全面回答您的問題,請考慮點擊答案旁邊的複選框以標記已解決的問題。 –