2011-02-07 7 views
0

않습니다 KSH 별칭 또는 기능 : 제대로 blah에 용어 이름을 설정내가 다음 줄이 "setTermName ㅋ"

echo -ne "\033]0;blah\007" 

합니다. 하지만 그 함수를 다음과 같이 함수 내에두면 :

setTermName() 
{ 
    echo -ne "\033]0;blah\007" 
} 

더 이상 작동하지 않습니다. 이스케이프 시퀀스는 함수 내에서 올바르게 처리되지 않는다고 생각합니다. 그래서 제 질문은 다음과 같이 재 형성 될 수 있습니다 : 함수 내에서 어떻게 이스케이프 시퀀스를 사용합니까?

명령 줄에서 setTermName foo 만 수행 할 수 있기를 원합니다.

+0

어떤 버전'ksh'? 어떤 OS인가? 어떤 터미널? Linux에서는 ksh93, pdksh, Bash, zsh 또는 dash를 putty, gnome-terminal, xterm 또는 screen에서 사용하고 Cygwin에서는 pdksh 또는 Bash를 mintty를 사용하여 사용합니다. 당신의'PS1'은 무엇으로 설정되어 있습니까? –

답변

1

대화식 ksh에서도 echo 명령을 호출 할 수 있습니까? -ne을 이해하셨습니까? 그것은 표준이 아닙니다. 아마도 printf을 사용하십시오.

그리고 alias 대신 사용해 볼 수 있습니다.

UPD : 내가 AIX의 KSH로 확인한 다음과 같은 기능을했다 :

set_tn() 
{ 
    printf "\033]0;$1\007" 
} 
+0

예, 대화 형 ksh의 명령 행에서 echo를 인쇄하면 작동합니다. 나는 지금 printf로 시도했지만 \ b % s \ a "$ 1"이지만 작동하지 않는다. 별칭에 인수를 전달할 수 있습니까? – rturrado

+0

@rturrado 시스템/ksh는 무엇입니까? 아마도 내가 확인하고 싶은 그런 시스템이있을 것입니다. 나는 AIX에서 시도했는데 거기에 'echo'는 이해하지 못했다. 일반적으로 함수의 이스케이프에는 문제가 없습니다. 어떻게 작동하지 않습니까? 아무것도 인쇄하지 않거나 이스케이프를 생략하지 않습니까? 별칭을 아쉽게 생각합니다. 인수를 전달해야한다는 사실을 잊어 버렸기 때문에 여기에는 옵션이 없습니다. –

+0

흠 ... 당신의 set_tn()은 나를 위해 작동하지 않습니다. 그냥 표준 출력에 인수를 인쇄합니다. ksh --version은 다음을 보여줍니다 : sh (AT & T Research) 93t + 2010-02-02. – rturrado

관련 문제