Так як ви робите це в Automator , з Run AppleScript Актон , це буде робити те , що вам потрібно:
on run {input, parameters}
set theItemsToScanList to {}
repeat with i from 1 to count input
set end of theItemsToScanList to quoted form of (POSIX path of (item i of input as string)) & space
end repeat
tell application "Terminal"
activate
do script with command "clamscan --bell -i " & theItemsToScanList
end tell
end run
Не потрібно ускладнювати речі і проходити ригмарол, показаний в іншій відповіді!
Або якщо ви вирішите це зробити у звичайному сценарії / програмі AppleScript , тоді це зробить все, що вам потрібно:
set theseItems to application "Finder"'s selection
set theItemsToScanList to {}
repeat with i from 1 to count theseItems
set end of theItemsToScanList to quoted form of (POSIX path of (item i of theseItems as string)) & space
end repeat
tell application "Terminal"
activate
do script with command "clamscan --bell -i " & theItemsToScanList
end tell
Примітка: приклад AppleScript код вище тільки що, і не включає в себе обробку помилок , які можуть знадобитися / потрібно / хотів, відповідальність лежить на користувачеві , щоб додати будь-яку обробку помилок для будь-якого коду прикладу представлені і чи код , написаний на себе .
do script
команди НЕ AppleScript вdo shell script
команду . Безпосередня проблема , яку я бачу вас ваша відповідь , якщо більше , то один файл і сказати багато файлів обрані, в той час як--bell
опція вclamscan
команді може дзвонити, так би мовити, як один будуть знати , яка з партій вибраних файлів є заражений один?-i
, який друкував би заражені файли, марний уdo shell script
команді, якщо ви не збираєтеся встановити його вихід на змінну, а потім проаналізувати її якось, але не вdo script
команді Terminal . Щось подумати!