01-27-2009
Small comment:
while true;do something;sleep 9999;end
Don't you think that "sleep"/"wait"/etc. command is not the best one to use?
Imagine an example:
You have 2 people working. One is digging graves while the second one is putting coffins into it.
You tell the second one to get the coffin into the grave and then take it out and so on... until the first one diggs another grave.
This is the approach with "sleep"/"wait"/etc.
Better approach would be to tell the second one to put a single coffin into the grave and then to wait until another grave is digged - until then the second man can do whatever he likes.
This corrected approach is called event-driven approach.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
please can someone point me in the right direction with a shell scripting problem.
I want to execute a command in a for loop and the command should be started not one-by-one meaning the for loop is waiting for the exit code , it should be started in parallel.
I have a plain text file... (3 Replies)
Discussion started by: networkfre@k
3 Replies
2. Shell Programming and Scripting
I have a very basic bash shell script, which has many "while... done; for .... done" loop clauses, like the following
~~
#!/bin/bash
while blablalba; do
....
done < /tmp/file
for line in `cat blablabla`; do grep $line /tmp/raw ; done > /tmp/1;
while blablalba2; do
....
done <... (2 Replies)
Discussion started by: fedora
2 Replies
3. UNIX for Dummies Questions & Answers
I want to execute a while loop (or any other loop) for 20 minutes.
I have extracted the minutes and seconds from the current system date by using the command y = `date +%M%S`
How to proceed ?? (6 Replies)
Discussion started by: subhotech
6 Replies
4. Shell Programming and Scripting
hi Everyone , have a nice day
#!/bin/sh
( sleep 1
echo "LOGIN:username:password;"
sleep 1
while IFS= read -r line
do
#echo $line
GET:VOUCHERDETAIL:VoucherSerialNumber,$line; >> /home/status_log
done < /home/status.txt
sleep 1
echo "LOGOUT;") | telnet 127.0.0.1 7021
,
it... (2 Replies)
Discussion started by: Dastard
2 Replies
5. UNIX for Dummies Questions & Answers
Hello,
I have a set of input data that I split into batches using the following command:
split -l 4000000 MyInput.in Split_a
Once I get the split files, I run a certain command on the split files that spews an output. So far I have been doing it without a for loop. How can I translate the... (2 Replies)
Discussion started by: Gussifinknottle
2 Replies
6. UNIX for Dummies Questions & Answers
Hi everyone.
I wanted to print numbers from 1 to 5 in reverse order. For this I used the following code:
#!/bin/bash
x=5
while
do
echo $x
x=`expr $x - 1`
echo ""
done
echo ""
Well but on compiling the above code, it gives the following error.
... (3 Replies)
Discussion started by: grc
3 Replies
7. Shell Programming and Scripting
HI Unix Gurus,
I have a number of SELECT count(*) statements in an input file and I want to execute it using a shell script but one by one using loop in script....
How can I do this..... (7 Replies)
Discussion started by: ustechie
7 Replies
8. Shell Programming and Scripting
I have a below command
ALTER TABLE `abc` ADD PARTITION ( PARTITION 20130613 VALUES less than (DAY('13')));
Below is requirement
It runs in Loop
as DAY start with 13 and end with 100 along with this of counter "20130613" also increases per command
as the next command should be
... (8 Replies)
Discussion started by: kaushik02018
8 Replies
9. Shell Programming and Scripting
How do we execute a command inside a while loop? (7 Replies)
Discussion started by: Little
7 Replies
10. Shell Programming and Scripting
Hi,
I have first script which on IR remote command event execute the second script. If the second script is executed, it display echo "timeout expired" after 10s. This works as expected.
But I also want to reset timer (increase time) in case if the second script is executed again within 10s.
... (8 Replies)
Discussion started by: armatron
8 Replies
sleep(9r) sleep(9r)
NAME
sleep - General: Puts a calling process to sleep
SYNOPSIS
void sleep(
caddr_t *channel,
long pri );
ARGUMENTS
Specifies a unique address associated with the calling kernel thread to be put to sleep. Specifies whether the sleep request is interrupt-
ible. Setting this argument to the PCATCH flag causes the process to sleep in an interruptible state (that is, the kernel thread can take
asynchronous signals). Not setting the PCATCH flag causes the process to sleep in an uninterruptible state (that is, the kernel thread can-
not take asynchronous signals).
DESCRIPTION
The sleep routine puts a calling process to sleep on the address specified by the channel argument. Some common addresses are the lbolt
argument, a buf structure, and a proc structure. This address should be unique to prevent unexpected wake/sleep cycles, which can occur if
different processes are sleeping on the same address accidentally. If you set the PCATCH flag in the pri argument, the sleep routine puts
signals on the queue and does not wake up the sleeping process.
The sleep and wakeup routines block and then wake up a process. Generally, device drivers call these routines to wait for the transfer to
complete an interrupt from the device. That is, the write routine of the device driver sleeps on the address of a known location, and the
device's Interrupt Service Interface (ISI) wakes the process when the device interrupts. It is the responsibility of the wakened process to
check if the condition for which it was sleeping has been removed.
NOTES
The operating system provides two ways to put a process to sleep: interruptible and uninterruptible. The sleep routine performs an uninter-
ruptible sleep operation if you do not set the PCATCH flag and an interruptible sleep operation if you set the PCATCH flag. This means
that device drivers cannot call sleep at interrupt context because at interrupt context there is no calling process to be put to sleep.
Thus, a device driver's Interrupt Service Interface (ISI) and those routines called from within the ISI must not call the sleep routine.
On this operating system, you cannot use pri to set the scheduling priority of the calling process.
RETURN VALUES
None
FILES
SEE ALSO
Routines: wakeup(9r)
sleep(9r)