은 인용 명령은 정확 경우
watch -n 0.2 'ps -p $(pgrep -d',' -x snmpd) -o rss= | awk '{ i += $1 } END { print i }''
^ ^^ ^ ^^
1 0 1 0 10
당신은 당신의 작은 따옴표 문제를 가지고있다. 1은 '견적의 시작'을, 0은 견적의 끝을 나타냅니다.
watch -n 0.2 'ps -p $(pgrep -d"," -x snmpd) -o rss= | awk "{ i += $1 } END { print i }"'
^ ^
1 0
이중 따옴표를하고 $(...)
도 제대로 작동 : 다음 명령 줄은 당신을 위해 작동합니다. 작은 따옴표로 묶인 문자열은 전체적으로 watch
으로 전송됩니다. 이전에는 여러 개의 인수가있었습니다.
참고하여 작업 명령에, 당신이 그 : 중간 '01'사이의 문자가 아닌 쉼표 비어 있기 때문에
watch -n 0.2 'ps -p $(pgrep -d',' -x snmpd) -o rss'
^ ^^ ^
1 0 1 0
이제, 쉘이 watch
하나의 인자를 제공하기 위해 계속, 따옴표가 포함되어 있지 않습니다.
ps -p $(pgrep -d, -xsnmpd) -o rss
당신의 awk
- 라인, 1watch` 가져 여러 인수가 :
ps -p $(pgrep -d, -x snmpd) -o rss= | awk {
i
+=
$1
}
END
{
print
i
}
을 그리고 그것은 과잉 무엇을 해야할지하지 않습니다 세 번째 인수가 무엇이라고 watch
가져옵니다. (NB : $1
의 값은 쉘의 현재 $1
입니다. 빈 문자열 일 수도 있습니다.이 경우 $1
에 해당하는 인수는 생략됩니다.내가 테스트를 어디 snmpd
이 시스템에서 실행되지 않았다 - 실제로 실행중인 프로그램에 대한 보았을 때)
이 변형의 awk
스크립트에서 $1
전에 백 슬래시 (나를 위해 일 듯 사물이 때문에) 그의 붕괴 :
sh -c 'ps -p $(pgrep -d"," -x snmpd) -o rss= | awk "{ i += \$1 } END { print i }"'
당신이 그때 당신은 컴팩트 좀 덜 일을 할 필요가없는 snmpd
과정이 없다는 것을 어떤 위험이 있다고 생각되면
. 그것은 내가 테스트 한 명령이다.
sh -c
대신
watch -n 0.2
을 넣을 수 있습니다. 그러나
watch
에 대한 man 페이지가 명시 적으로 말할 않습니다 :
command
은 당신이 원하는 효과를 얻기 위해 인용 필요가있을 수도있다에 "
sh -c
"주어진
하는 것으로.
매우 정확했습니다! 당신이 따옴표를 고수하려는 경우
, 당신은 시도 할 수 :
watch -n 0.2 'ps -p $(pgrep -d"," -x snmpd) -o rss= | awk '\''{ i += $1 } END { print i }'\'
'\''
모티브 뒤에 아이디어는 처음 따옴표는 현재 단일 인용 문자열을 종료한다는 것입니다; 백 슬래시 작은 따옴표는 실제 작은 따옴표를 추가하고 마지막 작은 따옴표는 작은 따옴표로 묶인 새 문자열을 시작합니다. 마지막에 '\'
은 '\'''
이라고 쓸 수도 있지만 마지막 두 개의 작은 따옴표는 중복되므로 생략했습니다.
노력에 감사드립니다. JL. 나는 설명과 이중 따옴표의 제안을 좋아한다. * awk * 그러나 큰 따옴표의 사용을 좋아하지 않는다 ... 나는이 것에 분실된다. –
나는 틀린 것의 진단이 표적에다는 것을 참으로 확신한다. 교체가 확실하지 않습니다. 그것이 작동하지 않는다고 말하는 것입니다. 하지만'$ (pgrep ...) '작업은 정상적으로 처리되었습니다. ['watch'] (http://linux.about.com/library/cmd/blcmdl1_watch.htm)의 man 페이지는 다음과 같이 말하고 있습니다 : _shote_command _는 "sh -c"에 주어 졌으므로 여분의 것을 사용해야 할 수도 있습니다 원하는 효과를 얻기 위해 인용 ._ –
OK. * watch *에 명령을주지 않으면 * awk *는 큰 따옴표를 사용하는 것을 좋아하지 않습니다. 따라서 * awk *가 오류를 생성하는 것을보기 위해 전달되었을 때. 즉, 단일 견적 변형이 잘 작동합니다. 많은 감사합니다. –