일련의 스크립트를 실행하는 간단한 bash 루프가 있습니다.
#!/bin/bash
for (( c=0; c<=200; c++ ))
do
php ./script.php $1
done
loop
스크립트 output
echo
에서 ed를 통해 중단할 수 있습니까 php
?
답변1
어쩌면 그게 무슨 뜻일까요?
#!/bin/bash
for (( c=0; c<=200; c++ ))
do
output=$(php ./script.php "$1")
case $output in
*'foo'*) echo "Loop terminated"; break;;
esac
echo "$output"
done
에서 영감을 받다@Archemar의 답변, 당신은 또한 말할 수 있습니다
#!/bin/bash
for (( c=0; c<=200; c++ ))
do
! php ./script.php "$1" | grep -v 'foo' || break
done
답변2
script.php가 0이 아닌 다른 것을 반환할 수 있는 경우.
...
do
if ! php ./script.php $1
then break
fi
done
./
script.php 앞에 필요한지 잘 모르겠습니다.루프 구문에 대해 잘 모르겠습니다.bash에 대해 배웠습니다 .
필터 "출력"
if php script.php $1 | grep --quiet output
then break
fi
이것이 grep
반환 if
코드입니다.
답변3
다음을 시도해 볼 수 있습니다.
output=$(php script.php "$1")
if [ $output = "{End output}" ]
then
break
fi
이제 다음과 같이 PHP 스크립트를 변경하기만 하면 됩니다.
...
echo '{End output}';
...
고쳐 쓰다:
제안해 주신 Tripleee에게 감사드립니다. 바꿨어요(그가 진지했으면 좋겠어요 :-))