2015-09-17 16 views
0

我創建了一個文件夾操作,以便每次將新的png文件放入文件夾時,使用imagemagick將新文件和文件夾內的現有.png文件合成並保存爲一個新文件。看起來相當簡單。我已經嘗試過腳本,只是在終端,它的工作原理,但在automator它似乎並沒有解僱......我假設因爲「F」?簡單的Automator外殼腳本,用於圖像合成不起作用

以下是我的Automator的 「運行Shell腳本」 代碼段:

for f in "[email protected]" 
do 
    /usr/local/bin/convert BG.png "$f" -composite result.jpg 
done 

回答

1

只需要添加其中BG.png & result.jpg應該的。

PATH=$PATH:/usr/local/bin 
where=$(dirname $1) 
for f in "[email protected]" 
do 
    convert ${where}/BG.png "$f" -composite ${where}/result.jpg 
done 

更新

如果你想要得到的result.jpg圖像寫入到另一個位置;那麼只需更新最終路徑。 Automator傳遞一些環境變量來處理。在這種情況下,HOME將是您當前登錄的用戶的基本路徑。所以,如果我想result.jpg自動放置在Desktop ....

PATH=$PATH:/usr/local/bin 
where=$(dirname $1) 
DESKTOP=${HOME}/Desktop 
# `~/Desktop' will also work in this example 
for f in "[email protected]" 
do 
    convert ${where}/BG.png "$f" -composite ${DESKTOP}/result.jpg 
done 
+0

非常感謝!像魅力一樣工作! – Chaz

+0

一個簡單的問題,如果我想更改result.jpg的目標文件夾,我將爲$ {where}放置什麼? – Chaz

+0

@Chaz只需更新到新路徑。我會更新答案 – emcconville

0

或許offtopic,但爲什麼你總是在轉換BG.png一個?

但是回到主題:當您使用即時計劃腳本運行的cron時,請驗證您是否使用完整文件路徑。如果你從指定的目錄運行你的腳本,它會成功;但是當cron運行它時,$ CWD - 工作目錄 - 可能會不同,並且沒有文件被處理。

例如,您可以把完整的目錄路徑上的命令行,並對其進行分析是這樣的:

DIR=$1 
shift 
for f in "[email protected]"; do 
    convert BG.png "$DIR/$f" -composite result.jpg 
done 
+0

啊......所以在查看日誌,似乎工作流程沒有任何錯誤跑暢通,但是「result.jpg」無處可尋。好奇的是,我還不得不提供上面編輯過的直接轉換路徑。 – Chaz

+0

也許「$ DIR/result.jpg」會有所幫助。 –

+0

是的...試過了,沒有任何東西。我會更多地玩弄它。似乎關閉。 – Chaz