Изменить каталог и команду терминала AppleScript

Я пробовал следующее, но не могу заставить это работать:

do script "cd ~/desktop/test; for x in ls -1 | sed -e 's/^\(.\).*/\1/' | sort -u; do mv -i ${x}?* $x done"

Я хочу выполнить эту команду в applescript. Я запускаю это в applescript и получаю сообщение об ошибке, касающееся меток «», но не знаю, как это исправить. Я полный новичок в AppleScript. готовы учиться только немного потерял.

Спасибо


person J Paul    schedule 06.02.2016    source источник


Ответы (1)


Обратите внимание, что в AppleScript всякий раз, когда вы передаете команду сценария оболочки с \, используйте \\ для ее представления.

As:

do shell script "cd ~/Desktop/; for x in `ls -1 | sed -e 's/^\\(.\\).*/\\1/' | sort -u`; do echo ${x}?* $x; done"

Кроме того, он использует for x в `command` вместо for x в команде. Это потому, что `` рассматривает все внутри себя как команду и ожидает результат этой команды, как и $():

do shell script "cd ~/Desktop/; for x in $(ls -1 | sed -e 's/^\\(.\\).*/\\1/' | sort -u); do echo ${x}?* $x; done"
person Arthur Alves    schedule 06.02.2016