Passing Multiple Parameters from Applescript to Terminal Command Script

夙愿已清 提交于 2019-12-24 23:27:46

问题


I have been trying to figure out how to pass multiple parameters from an Applescript to a Terminal Command Script. For example when running a terminal command file you are able to receive parameters programatically like so:

#!/bin/bash

var=$1

var=$2

The Applescript Code that I have been working with is below for reference:

tell application "System Events" to set app_directory to POSIX path of (container of (path to me))

set thisFile to "Dev"

set testTarget to "/Users/lab/Desktop/TestTarget/"

do shell script "/Users/lab/Desktop/TempRoot/mycommand.command " & thisFile & testTarget with administrator privileges

Where I think I have gone wrong is the input of the second parameter. When I only had one parameter it went through just fine:

do shell script "/path/to/command/mycommand.command" &var with administrative privileges

I am curious as to what the correct syntax would be for passing in this second parameter. If anybody has any suggestions please let me know! Also if you need more information I would be happy to provide it!


回答1:


You just need to add a space between your arguments. Right now, there is no space being added between thisFile and testTarget. Your command looks like this:

/Users/lab/Desktop/TempRoot/mycommand.command Dev/Users/lab/Desktop/TestTarget/

Change your shell script line to:

do shell script "/Users/lab/Desktop/TempRoot/mycommand.command " & thisFile & space & testTarget with administrator privileges

Something that I find helpful when building a script is to make sure my shell commands are correct before running them. So instead of building it directly, store the command in a variable and log it. Later, replace the logging statement with the do shell script command.

set shellScript to "/Users/lab/Desktop/TempRoot/mycommand.command " & thisFile & space & testTarget with administrator privileges
log shellScript
-- do shell script shellScript



回答2:


This is a shortened discription for the answer as posted in @Darrick Herwehe's. I just needed to add the space keyword and the command worked perfectly. Thanks much!

do shell script "/Users/lab/Desktop/TempRoot/mycommand.command " & thisFile & space & testTarget with administrator privileges


来源:https://stackoverflow.com/questions/28833086/passing-multiple-parameters-from-applescript-to-terminal-command-script

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!