2013-12-13 3 views
1

명령의 출력을 비교하고 아무 것도 반환하지 않을 때까지 루프를 실행하는 함수를 작성하려고합니다. 명령을 실행하면 상태가 충족되지 않고 스크립트가 while 루프에서 영원히 멈추는 것처럼 동작합니다. 프롬프트에서 명령을 실행해도 아무 것도 반환하지 않습니다. 어떤 도움이라도 대단히 감사합니다. Machine은 Mac OS 10.9이므로 su의 구문이 약간 펑키합니다.Bash는 빈 텍스트 문자열에 명령의 출력을 비교합니다.

프롬프트에서 실행하면 다음이 반환됩니다.

bash-3.2# su macadmin -c VBoxManage list runningvms | grep tjfog 
bash-3.2# 

고마워요!

답변

3

[ and ][ 이후와 ] 앞에 공백이 있어야합니다.

그러나 당신은 당신의 while 상태를 다시 작성할 수 있습니다와 같은 :

while su macadmin -c 'VBoxManage list runningvms | grep -q tjfog' 
do 
    echo "Waiting for the VM to shutdown" 
    sleep 3 
done 
관련 문제