bash 별칭을 csh 별칭으로 변환하는 방법은 무엇입니까? -> 아니면 tcl로

bash 별칭을 csh 별칭으로 변환하는 방법은 무엇입니까? -> 아니면 tcl로

alias s2st="ps -A | grep -E "a|b""배쉬와 함께 작동합니다.

그런 다음 다음으로 변환하려고합니다 csh.

set-alias t2st 'ps -A \| grep -E "a\|b"'

하지만 csh의 참조는 정말 너무 달라서 감당할 수 없습니다 ...

정확하고 효과적이려면 무엇이 필요합니까?

답변1

에서는 bash다음과 같아야 합니다.

alias s2st='ps -A | grep -E "a|b"'

( alias s2st="ps -A | grep -E "a|b""회의아니요bash두 번째 항목이 "첫 번째 항목을 닫으므로 "두 번째 항목은 |참조되지 않으므로 작동합니다 .

존재하다csh

alias s2st 'ps -A | grep -E "a|b"'

bashcsh에는 모두 큰 따옴표가 있습니다 '...'. 개행 문자(및 앞의 백슬래시)가 여전히 특별하다는 csh점 에서는 덜 강력합니다 .!

TCL에서 강력한 참조는 {...}일치하는 한 표시되는 추가 이점이 있습니다 {.}

답변2

Stéphane Chazelas 덕분에 내 문제를 발견했습니다.

내 별칭은 tcl 스크립트에 저장되므로 다음과 같은 올바른 tcl 구문이 필요합니다.

set-alias s2st {ps -A | grep -E "a|b"}

답변3

Tcl에서는 다음과 같이 쓸 것입니다.

proc psgrep {pattern} {
    return [join [lsearch -regexp -inline -all [split [exec ps -A] \n] $pattern] \n]
}

set output [psgrep {a|b}]

관련 정보