2014-02-06 83 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

@史蒂芬哈米特 - 也不需要提出另一個問題 - 可以對其進行充分編輯以滿足需求。 –