Re: Ksh output garbled/out-of-sync
- From: govindrjujare@xxxxxxxxx
- Date: 10 May 2007 11:56:39 -0700
On May 10, 1:17 pm, govindrjuj...@xxxxxxxxx wrote:
On May 10, 9:00 am, Janis <janis_papanag...@xxxxxxxxxxx> wrote:
On 10 Mai, 11:54, Bill Marcum <marcumb...@xxxxxxxxxxxxx> wrote:
On 9 May 2007 19:20:15 -0700, govindrjuj...@xxxxxxxxx
<govindrjuj...@xxxxxxxxx> wrote:
On May 9, 8:28 pm, govindrjuj...@xxxxxxxxx wrote:
Can somebody explain this ? -- thx
/tmp> cat ./1.sh
#!/bin/ksh
for name in 1 2 3 4 5 6 7 8 9 10
do
/bin/echo "<$name>"
/bin/cat /etc/passwd | head -1 | tail
done
/tmp> ./1.sh
<1>
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
<2>
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
<3>
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
<4>
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
<5>
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
<6>
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
<7>
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
<8>
<9>
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
<10>
root:x:0:1:HOSTNAME Super-User:/:/usr/bin/ksh
Looks like problem with "head". Happening on Solaris 5.8.
Try adding "wait" before "done". What version ofkshis this?
What happens if you use the builtin echo instead of /bin/echo?
--
Heard that the next Space Shuttle is supposed to carry several Guernsey cows?
It's gonna be the herd shot 'round the world.
And while experimenting; what's the result if you remove all
superfluous processs from
/bin/cat /etc/passwd | head -1 | tail
head -1 </etc/passwd
Does this also produce the disorderedoutput?
Janis- Hide quoted text -
- Show quoted text -
That suggestion worked. No more garbledoutput.
I ran the original script as-is on couple of more other systems with
Solaris 5.8. On some theoutputseems ok
and on some others, it gets unordered. I guess it varies with cpu
load. Whenever I am not able to reproduce the
problem, I just add few more "head -1" commands and theoutputgets
unordered.
I am leaning towards the possibilities that there is something wrong
with the configuration of our systems or
"head" is doing something mysterious with STDIN.- Hide quoted text -
- Show quoted text -
Did I mention that the behaviour is not consistent for each run ? I
modified the script to check for
several iterations. Here is what worked and what did not.
========================================
#!/bin/ksh
integer i=0
while [[ $i -lt 1000 ]]
do
echo "marker"
# unordered
# /bin/cat /etc/passwd | /bin/head -1 | /bin/tail
# ordered
# /bin/head -1 </etc/passwd | /bin/tail
# ordered
# /bin/head -1 /etc/passwd | /bin/tail
# ordered
# /bin/cat /etc/passwd | /bin/head -1 | /bin/tail
# wait
i=$i+1
done
========================================
When you open one of the commented blocks and run the script as ---
../1.sh | uniq | wc -l
It should print 2000. For the "unordered" block, it hardly prints
about 1600.
.
- Follow-Ups:
- Re: Ksh output garbled/out-of-sync
- From: govindrjujare
- Re: Ksh output garbled/out-of-sync
- References:
- Ksh output garbled/out-of-sync
- From: govindrjujare
- Re: Ksh output garbled/out-of-sync
- From: govindrjujare
- Re: Ksh output garbled/out-of-sync
- From: Bill Marcum
- Re: Ksh output garbled/out-of-sync
- From: Janis
- Re: Ksh output garbled/out-of-sync
- From: govindrjujare
- Ksh output garbled/out-of-sync
- Prev by Date: Shell script question
- Next by Date: Re: bitwise shift in shell
- Previous by thread: Re: Ksh output garbled/out-of-sync
- Next by thread: Re: Ksh output garbled/out-of-sync
- Index(es):
Relevant Pages
|