[완료] 매초매다 명령어 반복하는 쉘스크립트

gogisnim의 이미지

예를들어 3초마다 입력하는 명령어를 자동 실행하고 싶습니다.

#!/bin/sh

CMD="$1"
while [ 1 ]; do
$CMD
sleep 3
done

$ auto_cmd.sh "ls -l"

이렇게 하면 3초에 한번씩 ls -l 의 결과를 뿌립니다.
그런데 파이프가 들어가는

$ auto_cmd.sh "netstat -an | grep TIME_WAIT"

실행시키면 grep 부분이 제대로 실행되지 않고 netstat -an 부분만 실행이 되네요.
리눅스에서는 이렇게 나오고 SunOS, AIX 에서는 netstat 사용법이 잘못되었다고 나옵니다.

파이프가 있는경우 원하는 결과가 나오지 않네요.

만약,

#!/bin/sh

while [ 1 ]; do
netstat -an | grep TIME_WAIT
sleep 3
done

$ auto_cmd.sh

하면 원하는 결과가 나옵니다.

jj의 이미지

#!/bin/sh

CMD="$1"
while [ 1 ]; do
sh -c "$CMD"
sleep 3
done

요렇게 한번...
--
콘쏠의힘

--
Life is short. damn short...

gogisnim의 이미지

마찬가지입니다.ㅠㅠ

고기맛을 알아버린 스님 !!!

pung96의 이미지

eval $CMD 로 해보세요.

gogisnim의 이미지

훌륭합니다 !!

고기맛을 알아버린 스님 !!!

pung96의 이미지

오 축하드리면서
포인트라도... ㅎㅎ

익명 사용자의 이미지

리눅스에서 위 명령어 치면 됩니다.