[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] call shell commands; synchronous return

From: Stephen
Subject: Re: [Help-smalltalk] call shell commands; synchronous return
Date: Wed, 09 Apr 2008 00:38:34 +1200
User-agent: Thunderbird (Macintosh/20080213)

shellOut := Smalltalk system: 'sleep 5 && ls -l /etc && sleep 10'.
Transcript showCr: shellOut printString.

That worked a treat.

Is there anything one should be aware of when choosing between the two
ways of calling shell commands? The system: call above appeals since it
is synchronous and provides the shell output, but just wondering if
there is a situation when it is better to use the "Filestream popen:
dir" command.

Then found that Smalltalk system: returns an integer rather than the shell output.

So here is what I wanted to do:

" Part 1: shut down running VMWare VMs"
shellCmd := '/usr/bin/vmrun list'.
pipe := FileStream popen: shellCmd dir: FileStream read.
pipe linesDo: [: vmName |
   shellCmd2 := '/usr/bin/vmware-cmd %1 stop' bindWith: vmName.
   pipe2 := FileStream popen: shellCmd2 dir: FileStream read.     ]

Hence the need for a synchronous call so that the script waits until each machine is shut down.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]