This works (prints, for example, “3 arguments”):
to run argv
do shell script "echo " & (count argv) & " arguments"
end run
This doesn't (prints only “Argument 3: three”, and not the previous two arguments):
to run argv
do shell script "echo " & (count argv) & " arguments"
repeat with i from 1 to (count argv)
do shell script "echo 'Argument " & i & ": " & (item i of argv) & "'"
end repeat
end run
In both cases, I'm running the script using osascript
on Mac OS X 10.5.5. Example invocation:
osascript 'Script that takes arguments.applescript' Test argument three
I'm not redirecting the output, so I know that the script is not throwing an error.
If I add a display dialog
statement above the do shell script
, it throws a “no user interaction allowed” error, so I know that it is executing the loop body.
What am I doing wrong? What is it about this loop that causes osascript to not print anything?