Re: commands within shell script

2003-03-05 Thread Ron Johnson
On Tue, 2003-03-04 at 20:41, Nori Heikkinen wrote:
 on Tue, 04 Mar 2003 05:13:33PM -0500, Benjamin Rutt insinuated:
  Nori Heikkinen [EMAIL PROTECTED] writes:
   okay, this is cool ... i'd just misunderstood a friend's question.
   he doesn't even want to run top, he wants to stick in a bunch of
   echo statements.
  
  In that case, place 'set -x' as the 2nd line of the shell script
  (the line after the #! business) and see every command echoed as it
  is executed.  -- Benjamin
 
 *exactly* what i(/he) wanted!  thanks!

Try this:
#!/bin/bash
set -x
set -v
for i in 1 2 3 4 5;
do
echo foobar${i} ;
done

After seeing Benjamin Rutt mention -x, I tried it along with -v,
and having both makes it much easier to see the flow of the script.

-- 
+---+
| Ron Johnson, Jr. Home: [EMAIL PROTECTED]  |
| Jefferson, LA  USA   http://members.cox.net/ron.l.johnson |
|   |
| The difference between RockRoll and Country Music?   |
| Old Rockers still on tour are pathetic, but old Country   |
| signers are still great.  |
+---+


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: commands within shell script

2003-03-05 Thread Nori Heikkinen
on Wed, 05 Mar 2003 07:49:52AM -0600, Ron Johnson insinuated:
 On Tue, 2003-03-04 at 20:41, Nori Heikkinen wrote:
  on Tue, 04 Mar 2003 05:13:33PM -0500, Benjamin Rutt insinuated:
   Nori Heikkinen [EMAIL PROTECTED] writes:
okay, this is cool ... i'd just misunderstood a friend's question.
he doesn't even want to run top, he wants to stick in a bunch of
echo statements.
   
   In that case, place 'set -x' as the 2nd line of the shell script
   (the line after the #! business) and see every command echoed as it
   is executed.  -- Benjamin
  
  *exactly* what i(/he) wanted!  thanks!
 
 Try this:
 #!/bin/bash
 set -x
 set -v
 for i in 1 2 3 4 5;
 do
 echo foobar${i} ;
 done
 
 After seeing Benjamin Rutt mention -x, I tried it along with -v,
 and having both makes it much easier to see the flow of the script.

well, it's cluttered for me, but both are cool options.  

thanks again,

/nori

-- 
.~.  nori @ sccs.swarthmore.edu 
/V\  http://www.sccs.swarthmore.edu/~nori/jnl/
   // \\  @ maenad.net
  /(   )\   www.maenad.net
   ^`~'^


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: commands within shell script

2003-03-04 Thread Vineet Kumar
* Nori Heikkinen [EMAIL PROTECTED] [20030304 12:11 PST]:
 hey,
 
 by default, a shell script just appears as the script name in a list
 of processes (ps; top), right?  how can i make it show each command
 called within the script as it's being executed?

It already is.  For each program called from the script, the shell forks
and execs a new process, which shows up in the process list.  Of course,
you won't see shell builtin commands in the process list, just the shell
name and script name.

good times,
Vineet
-- 
http://www.doorstop.net/
-- 
Those who desire to give up freedom in order to gain security will not
have, nor do they deserve, either one.  --President Thomas Jefferson


signature.asc
Description: Digital signature


Re: commands within shell script

2003-03-04 Thread Martin Kacerovsky
Hi,

On Tue, Mar 04, 2003 at 02:47:49PM -0500, Nori Heikkinen wrote:
 hey,
 
 by default, a shell script just appears as the script name in a list
 of processes (ps; top), right?  how can i make it show each command
 called within the script as it's being executed?

I don't think so, name of the script is not shown in ps,
because script is only the input file a new shell you execute.
And the commands it runns (e.g. who, ...) are properly displayed.

Try it.
put into file 'test.sh' line 'sleep 10'
then chmod +x on it, and then execute it,
in output you will see : the new shell, and sleep ...

Bye.
-- 
+--+
| Martin Kacerovsky|
| e-mail : wizard(AT)matfyz(DOT)cz |
| home   : http://wizard.matfyz.cz |
+--+


pgp0.pgp
Description: PGP signature


Re: commands within shell script

2003-03-04 Thread Martin Kacerovsky
Hi,
sorry for replying on my own mail

On Tue, Mar 04, 2003 at 09:20:27PM +0100, Martin Kacerovsky wrote:
 Hi,
   
 Try it.
 put into file 'test.sh' line 'sleep 10'
 then chmod +x on it, and then execute it,
 in output you will see : the new shell, and sleep ...
There should be : in output of 'ps' command ...

 

Bye.
-- 
+--+
| Martin Kacerovsky|
| e-mail : wizard(AT)matfyz(DOT)cz |
| home   : http://wizard.matfyz.cz |
+--+


pgp0.pgp
Description: PGP signature


Re: commands within shell script

2003-03-04 Thread Martin Kacerovsky
Hi,

On Tue, Mar 04, 2003 at 12:15:56PM -0800, Vineet Kumar wrote:
 * Nori Heikkinen [EMAIL PROTECTED] [20030304 12:11 PST]:
  hey,
  
  by default, a shell script just appears as the script name in a list
  of processes (ps; top), right?  how can i make it show each command
  called within the script as it's being executed?
 
 It already is.  For each program called from the script, 
 the shell forks and execs a new process, which shows up in the 
 process list.  Of course, you won't see shell builtin commands 
 in the process list, just the shell name and script name.

But see this, I don't understand:

( ~ )$
( ~ )$ echo 'sleep 10'  test.sh
( ~ )$ chmod +x test.sh
( ~ )$ ./test.sh 
[1] 9771
( ~ )$ ps
  PID TTY  TIME CMD
26101 pts/300:00:00 bash
 9771 pts/300:00:00 bash
 9772 pts/300:00:00 sleep
 9773 pts/300:00:00 ps
( ~ )$
( ~ )$
[1]+  Done./test.sh
( ~ )$
 
and If I had run it in background, then on another terminal, I saw
in 'ps -A' the bash and sleep processes too.


-- 
+--+
| Martin Kacerovsky|
| e-mail : wizard(AT)matfyz(DOT)cz |
| home   : http://wizard.matfyz.cz |
+--+


pgp0.pgp
Description: PGP signature


Re: commands within shell script

2003-03-04 Thread Nori Heikkinen
on Tue, 04 Mar 2003 09:20:27PM +0100, Martin Kacerovsky insinuated:
 On Tue, Mar 04, 2003 at 02:47:49PM -0500, Nori Heikkinen wrote:
  by default, a shell script just appears as the script name in a
  list of processes (ps; top), right?  how can i make it show each
  command called within the script as it's being executed?
 
 I don't think so, name of the script is not shown in ps, because
 script is only the input file a new shell you execute.  And the
 commands it runns (e.g. who, ...) are properly displayed.
 
 Try it.  put into file 'test.sh' line 'sleep 10' then chmod +x on
 it, and then execute it, in output you will see : the new shell, and
 sleep ...

okay, this is cool ... i'd just misunderstood a friend's question.  he
doesn't even want to run top, he wants to stick in a bunch of echo
statements.

thanks!

/nori

-- 
.~.  nori @ sccs.swarthmore.edu 
/V\  http://www.sccs.swarthmore.edu/~nori/jnl/
   // \\  @ maenad.net
  /(   )\   www.maenad.net
   ^`~'^


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: commands within shell script

2003-03-04 Thread Ron Johnson
On Tue, 2003-03-04 at 13:47, Nori Heikkinen wrote:
 hey,
 
 by default, a shell script just appears as the script name in a list
 of processes (ps; top), right?  how can i make it show each command
 called within the script as it's being executed?

Maybe you are talking about this:
  #!/bin/bash -v
  for i in 1 2 3 4 5;
  do
  echo foobar${i} ;
  done
  echo $HOME ; echo $LANG

The -v makes it happen.

-- 
+---+
| Ron Johnson, Jr. Home: [EMAIL PROTECTED]  |
| Jefferson, LA  USA   http://members.cox.net/ron.l.johnson |
|   |
| The difference between RockRoll and Country Music?   |
| Old Rockers still on tour are pathetic, but old Country   |
| signers are still great.  |
+---+


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: commands within shell script

2003-03-04 Thread Benjamin Rutt
Nori Heikkinen [EMAIL PROTECTED] writes:

 okay, this is cool ... i'd just misunderstood a friend's question.  he
 doesn't even want to run top, he wants to stick in a bunch of echo
 statements.

In that case, place 'set -x' as the 2nd line of the shell script (the
line after the #! business) and see every command echoed as it is
executed.
-- 
Benjamin


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: commands within shell script

2003-03-04 Thread Vineet Kumar
* Martin Kacerovsky [EMAIL PROTECTED] [20030304 13:14 PST]:
 Hi,
 
 On Tue, Mar 04, 2003 at 12:15:56PM -0800, Vineet Kumar wrote:
  * Nori Heikkinen [EMAIL PROTECTED] [20030304 12:11 PST]:
   hey,
   
   by default, a shell script just appears as the script name in a list
   of processes (ps; top), right?  how can i make it show each command
   called within the script as it's being executed?
  
  It already is.  For each program called from the script, 
  the shell forks and execs a new process, which shows up in the 
  process list.  Of course, you won't see shell builtin commands 
  in the process list, just the shell name and script name.
 
 But see this, I don't understand:
 
 ( ~ )$
 ( ~ )$ echo 'sleep 10'  test.sh
 ( ~ )$ chmod +x test.sh
 ( ~ )$ ./test.sh 
 [1] 9771
 ( ~ )$ ps
   PID TTY  TIME CMD
 26101 pts/300:00:00 bash
  9771 pts/300:00:00 bash
  9772 pts/300:00:00 sleep
  9773 pts/300:00:00 ps
 ( ~ )$
 ( ~ )$
 [1]+  Done./test.sh
 ( ~ )$
  
 and If I had run it in background, then on another terminal, I saw
 in 'ps -A' the bash and sleep processes too.

This is all consistent with what I've said.  sleep is a process, not a
builtin, and shows up in the process list.  So, too, does the bash which
is spawned to execute the shell script.

I guess you're wondering why the script name doesn't show up like I said
it would.  Try it with a '#!/bin/bash', in which case your process
listing would instead like like this:

  PID TTY  TIME CMD
26101 pts/300:00:00 bash
 9771 pts/300:00:00 test.sh
 9772 pts/300:00:00 sleep
 9773 pts/300:00:00 ps

You should always start your scripts with a shebang, otherwise they're
really just text files that your shell has to guess what to do with.
Although it usually gets it right, it might not sometimes; it might be a
bash- csh- ksh- or zsh-specific script, instead of being able to execute
with vanilla sh.

good times,
Vineet
-- 
http://www.doorstop.net/
-- 
http://www.eff.org/


signature.asc
Description: Digital signature


Re: commands within shell script

2003-03-04 Thread Martin Kacerovsky
Hi,

On Tue, Mar 04, 2003 at 02:32:40PM -0800, Vineet Kumar wrote:
 
 This is all consistent with what I've said.  
 sleep is a process, not a builtin, 

Yeah, I see, I had overlooked that 'built-in', that explains it.

 and shows up in the process list.  So, too, does the bash which
 is spawned to execute the shell script.
 
 I guess you're wondering why the script name doesn't show up 
 like I said  it would.  Try it with a '#!/bin/bash', 

Yeah, it works, I haven't know that without it, the shell won't
get the name of the script in 'ps' output

 You should always start your scripts with a shebang, otherwise they're
 really just text files that your shell has to guess what to do with.

Yes, I do it everytimes, but I just wanted to put it as short as
possible, and with that 'echo ' it was the shortest way how to 
write the test.sh script.

 good times,
 Vineet

Good times to you.
Bye.
-- 
+--+
| Martin Kacerovsky|
| e-mail : wizard(AT)matfyz(DOT)cz |
| home   : http://wizard.matfyz.cz |
+--+


pgp0.pgp
Description: PGP signature


Re: commands within shell script

2003-03-04 Thread Nori Heikkinen
on Tue, 04 Mar 2003 05:13:33PM -0500, Benjamin Rutt insinuated:
 Nori Heikkinen [EMAIL PROTECTED] writes:
  okay, this is cool ... i'd just misunderstood a friend's question.
  he doesn't even want to run top, he wants to stick in a bunch of
  echo statements.
 
 In that case, place 'set -x' as the 2nd line of the shell script
 (the line after the #! business) and see every command echoed as it
 is executed.  -- Benjamin

*exactly* what i(/he) wanted!  thanks!

/nori

-- 
.~.  nori @ sccs.swarthmore.edu 
/V\  http://www.sccs.swarthmore.edu/~nori/jnl/
   // \\  @ maenad.net
  /(   )\   www.maenad.net
   ^`~'^


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]