Як запустити команду термінала для різних значень


0

Як мені потрібно позначити i так, щоб команда do повторилася для всіх значень i.

Напр

if i =2:
cd /Users/xxx/zTree; wine explorer /desktop=1,640x480 zleaf.exe /language english /name lab1
cd /Users/xxx/zTree; wine explorer /desktop=2,640x480 zleaf.exe /language english /name lab2

Але якось це не працює, де моя помилка?

display dialog "how many leafs?" default answer ""

set i to the text returned of result as integer
repeat while i > 0
  tell application "Terminal"
    do script "cd /Users/xxx/zTree; wine explorer /desktop=$i,640x480 zleaf.exe /language english /name lab$i"
    set i to i - 1
    activate
  end tell
end repeat

Проблема, яку ви мали, намагалася змішати заміну змінної bash з Applescript. Я не зміг знайти метод заміни на Applescript, тому я використав метод конкатенації, який поєднує частини рядка, використовуючи &
Todd Dabney,

Відповіді:


1

medbot має рацію, що ви дійсно повинні це робити як сценарій оболонки, але оскільки важко робити діалогові вікна, як в Applescript, ось відповідь:

display dialog "how many leafs?" default answer ""

set i to the text returned of result as integer
repeat while i > 0
    tell application "Terminal"
        do script "cd /Users/xxx/zTree; wine explorer /desktop=" & i & ",640x480 zleaf.exe /language english /name lab" & i
    end tell
set i to i - 1
end repeat

-1

Якщо ви маєте намір автоматизувати команди терміналів, ви доможетеся цього, написавши звичайний текстовий файл під назвою скрипт оболонки. Файл сценарію оболонки міститиме команди, які ви хочете виконати, кожна розділена рядком. Файл сценарію оболонки також може містити програмні оператори зі змінними та операторами. Коли ви хочете виконати скрипт оболонки, ви просто видасте ім'я файлу скрипта оболонки в командному рядку, як і для вбудованої команди.

Що не зовсім зрозуміло у вашому питанні, де ви маєте намір змінна 'i' отримати її початкове значення, і що слід робити по-різному щоразу, коли «i» збільшується та оцінюється?

Також "cd" - це не скрипт, це команда.


змінна 'i' генерується таким чином: відобразить діалогове вікно "скільки листків?" відповідь за замовчуванням "" встановити i текст, який повертає результат
Іра,

Гаразд, що таке листочок? Ще не зрозуміло, що ви намагаєтеся досягти. Хтось редагував ваше запитання, і тепер це ще менш зрозуміло. Ось що вам потрібно зробити: забути про «я» та відредагувати своє запитання, щоб описати проблему, яку ви намагаєтеся вирішити докладно.
medbot

leafs - це програма, яку я хочу відкрити, але я хочу відкрити кілька примірників цього. Її програма для проведення експериментів з суспільствознавства ...
Іра,

@medbot ваша відповідь правильна, що сценарій оболонки - це правильний спосіб зробити це, за винятком того, що він ігнорує досить діалогове вікно, що Applescript починається з цього, яке важко відтворити через командний рядок. Питання щодо сценарію слід відзначати як коментарі до оригінальної публікації, а не частиною вашої відповіді.
Тодд Дабні

Якщо ви хочете використовувати діалогове вікно в сценарії оболонки, це насправді не так складно, як я думав: stackoverflow.com/questions/9180476/…
Тодд Дабні,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.