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"'
bash
및 csh
에는 모두 큰 따옴표가 있습니다 '...'
. 개행 문자(및 앞의 백슬래시)가 여전히 특별하다는 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}]