[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
|