Aix
AIX 上的 ctrl-v 鍵
我是 AIX 的新手,我錯過了一些在其他 *nix 風格上執行良好的技巧。
我需要一個
CTRL
ksh 腳本中的序列,比如^[
(CTRL-[
) 並且這樣做我習慣使用ctrl-v
[
,但在這裡它不起作用。目前,我不得不使用帶有 putty 的 windows 機器,因此我什至無法在我的 Linux 機器上編輯腳本並在 AIX 伺服器上傳輸腳本。
你知道為什麼以及如何解決這個問題嗎?
要恢復答案:
@丹尼斯:
還有其他幾種在 Korn shell 腳本中使用轉義的方法:
print '\E' escape1='\033' # contains the literal characters as shown echo -e "$escape1" printf '%b' "$escape1" print "$escape1" escape2=$'\e' # contains an actual escape echo "$escape2" printf '%s' "$escape2" print "$escape2"
對於終端顏色
man 5 terminfo
$’’ 符號允許 ANSI-C 轉義:
green=$'\e[01;32m'
可能是ksh88不支持$''
我使用的是 ksh88,但我可以切換到 ksh93。
ctrl-v on command line Version M-11/16/88i /usr/dt/bin/dtksh print ${.sh.version} Version M-12/28/93d green=$'\e[01;32m' doesn't give me any error on ksh88,
但它不會擴展轉義序列。在 ksh93
$''
上同樣的問題green="$'\e[01;32m'"
使用大寫
E
解決了這個問題(奇怪!!!):print $'\E[01;32m hello'
總結一下:
\E works \e NO \033 works just with echo ^[ ^v^[ do not work at all
試試這個:
stty -a
看看
lnext
是不是^V
。如果沒有,請嘗試:stty lnext ^V
您將在其中鍵入“^”(插入符號)和“V”作為單獨的字元。現在嘗試看看您是否可以使用
^V^[
(^VEsc
在您的鍵盤上工作嗎?)鍵入轉義符。另外,檢查您是否處於 emacs 模式
根據您使用它的方式,還有一些其他方法可以在 Korn shell 腳本中使用轉義:
print '\E' escape1='\033' # contains the literal characters as shown echo -e "$escape1" printf '%b' "$escape1" print "$escape1" escape2=$'\e' # contains an actual escape echo "$escape2" printf '%s' "$escape2" print "$escape2"
當然,您通常不會單獨輸出轉義。