|
From: | Stephen |
Subject: | Re: [Help-smalltalk] call shell commands; synchronous return |
Date: | Wed, 09 Apr 2008 00:38:34 +1200 |
User-agent: | Thunderbird 2.0.0.12 (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.
Thanks Stephen
[Prev in Thread] | Current Thread | [Next in Thread] |