This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: How to repeat a bash shell script until success


On 2017-07-14 11:07, Kaz Kylheku wrote:
> On 12.07.2017 08:35, Bryan Dunphy wrote:
>> I have a shell script, originally created for Mac OS X. that waits for
>> an external drive to be mounted (by testing an “ls” of the volume’s
>> root directory for success) then runs an “rsync”
>>  command. How do I get the script to be run repeatedly until
>> successful exit under Cygwin?
> Multi-line
>   while ! program arg1 arg2 ...
>   do
>     :   # explicit null statement: syntactically mandatory!
>   done
> one-liner: semicolon between program and "do",
> semicolon between : statement and "done":
>   while ! program arg1 arg2 ... ; do : ; done
> The space between ! and the command is required.
> I would throw a sleep in there, not to create a CPU-intensive
> busy loop:
>   while ! program args ... ; do
>     sleep 1
>   done

Has everyone forgotten there is also an until loop, supported by at least sh,
dash, bash, [m]ksh:
	until prog ...; do sleep 60; done

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]