[squeak-dev] OSProcess and multiline input

Eliot Miranda eliot.miranda at gmail.com
Fri Feb 24 22:00:12 UTC 2012


On Fri, Feb 24, 2012 at 1:53 PM, Sean P. DeNigris <sean at clipperadams.com>wrote:

> I'm trying to pass a multiline argument, but none of the things that work
> in
> the shell seem to work with OSP.
>
> I passed both of the following to PipeableOSProcess>>waitForCommand: with a
> "No such file or directory" error, which usually means that the multiline
> part was not processed correctly. However, if I copy/paste them into the
> shell, they work fine
>
> heredoc:
> '/usr/bin/osascript -ss  <<-EOF
> tell application "Safari" to activate
> tell application "Terminal" to activate
> EOF'
>
> double-quoted string:
> '/usr/bin/osascript -ss  -e "
> tell application \"Safari\" to activate
> tell application \"Terminal\" to activate"'
>
> Why are these not working?
>

OSP is not a shell.  Ask yourself what a program receives when iyt is
invoked with the two examples above.  Then provide the equivalent argument
to OSP and you'll find it'll work.  OSP is an interface to exec.  A shell
is an interface to exec.  OSP doesn't parse arguments, just passes them
onto exec.  A shell does parse arguments before passing them onto exec.  So
the shell input

"
tell application \"Safari\" to activate
tell application \"Terminal\" to activate"

is a string argument which in Smalltalk would be written

(String with: Character lf), 'tell application "Safari" to
activate', (String with: Character lf), 'tell application "Terminal" to
activate'


HTH


> Thanks.
> Sean
>
> --
> View this message in context:
> http://forum.world.st/OSProcess-and-multiline-input-tp4418726p4418726.html
> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>
>


-- 
best,
Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20120224/7ae48999/attachment.htm


More information about the Squeak-dev mailing list