2014-02-06 115 views
1

是否可以将变量从applescript传递到可执行bash文件?如果是这样,我该如何编写可执行的bash文件来接受参数?我将传入一个动态文件名,该文件名将被附加到可执行文件中的文件路径中。将变量从applescript传递到可执行bash文件

AppleScript的...

global A 
set A to "test123.pdf" 
do shell script "/Users/matt/firstscript " & A 

猛砸文件...

#!/bin/bash 
b64test=$(base64 /Users/matt/Documents/$1) 
echo $b64test | pbcopy 
echo $b64test > Users/matt/Base64 
+0

你是从一个AppleScript内调用bash脚本? – beroe

+0

是的,看上面的评论。 –

回答

2

你的AppleScript需要做这样的事情:

global A 
set A to "test123.pdf" 
do shell script "/Users/matt/firstscript " & A 

然后在你的脚本,你可以参考到parameters as $1, $2, etc, or [email protected] for all of them.

#!/bin/bash 

b64_test=$(base64 /Users/matt/Documents/$1) 
echo $b64_test | pbcopy 
echo $b64_test > /Users/matt/Base64 

请注意,将bash变量的名称命名为test不是一个好主意,因为这是shell内置命令的名称。各种各样的混乱可能随之而来。


另外,你应该能够做到这一点无需额外的shell脚本:

set A to quoted form of "/Users/matt/Documents/test123.pdf" 
do shell script "base64 " & A & " | pbcopy" 
+0

@StephenHammett - 总的来说,最好是编辑你的问题,而不是在评论中张贴代码 –

+0

@StephenHammett - 请参阅我编辑的答案 - 具体而言,我最初没有意识到需要传递一个苹果变量的值 –

+0

@史蒂芬哈米特 - 也不需要提出另一个问题 - 可以对其进行充分编辑以满足需求。 –