Як виконати сценарії командного рядка?


17

У Windows я можу створювати .batфайли. Я двічі клацну по ньому, і всі рядки інтерпретуються так, ніби я ввійшов у консоль.

В ОС X який файл чи програму я повинен використовувати? Якщо я хочу написати файл із;

 echo hello world

Я хочу двічі клацнути цей файл і дозволити його виконувати в консолі. Як я це роблю?


чи потрібно запускати файл при двічі клацанні, чи ви просто хочете запустити файл, ввівши ім’я файлу?
Phil M


Файл із подвійним клацанням швидше :)
Родріго

Відповіді:


24

Підкопи для терміналів в OS X такі ж, як у Linux. Те, що ви конкретно шукаєте, зазвичай називають «Сценарії оболонок».

Оболонка за замовчуванням, коли ви відкриваєтесь Terminal.app(розташована у /Applications/Utilties), це оболонка bash.

У OS X був вбудований обробник оболонок, доступний через Finder та інші додатки через .commandрозширення, хоча розчарування не через .shрозширення. Однак налаштування сценарію для запуску через Finder ще складніше.

  1. Створіть простий скрипт оболонки, як ваш приклад. Я зробив додаток Hello World:
#!/bin/bash
echo "Hello World"
  1. Збережіть цей файл як HelloWorld.command.

  2. Дайте цьому файлу дозвіл на виконання. chmod u+x HelloWorld.commandповинен це зробити.

  3. Відкрийте каталог, де ви зберегли цей файл, у Finder. Потім двічі клацніть HelloWorld.commandфайл.

Це відкриє термінал і виконає сценарій, вихід на моєму комп'ютері такий:

$ /Users/jason/Applications/HelloWorld.command; Вхід;
Привіт Світовий
вихід

[Процес завершено]

Альтернативний спосіб виконання цього файлу - це все ще в самому Терміналі, просто видайте, ./HelloWorld.commandякщо ви перебуваєте в тому ж каталозі, що і файл.

Це призведе до набагато простішого виводу:

Програми Jason-Mac $ ./HelloWorld.command
Привіт Світ програми Jason
-Mac $

Ви тільки що створили та виконали сценарій оболонки в OS X!


Як осторонь: смішно засмучує, що OS X не робить цього з ".sh" файлами, лише ".command" файлами. Так, це можливо змінити, але .command вже існує, тому це моє запропоноване рішення.
Джейсон Салаз

Ви хочете задати питання, як вставити .sh у базу даних служб запуску чи мені?
bmike

У вас, очевидно, виникла ідея (думка навіть не спадала мені на думку), тому ви можете її виконати.
Джейсон Салаз

Я отримав ідею від вас - ось іде, іма запитайте це все самостійно ...
bmike

Це дасть мені:chown: u+x: Invalid argument
Родріго

4

Еквівалент консолі чи командного рядка в Windows - це додаток Terminal, розташоване в / Applications / Utilities /

Еквівалент DOS (або, як вони його сьогодні називають) "баш"

Еквівалент пакетного файлу (.bat) у Windows - це скрипт оболонки (.sh)

Просто пошукайте в Google "баш" "посилання", і ви зрозумієте інше. Я також рекомендував би придбати кухонну книгу Bash (O'Reilly).

Зокрема, це те, що ви введете у вікно терміналу, щоб отримати сценарій "привіт світ":

Щоб створити файл:

    echo "echo hello world" > file.sh

Щоб змінити дозволи, щоб зробити файл виконуваним:

    chmod 755 file.sh

Для запуску сценарію:

    ./file.sh

Якщо ви хочете мати можливість двічі клацнути по ньому в Finder, клацніть правою кнопкою миші (або клацніть клавішею миші) на файлі та виберіть Отримати інформацію, а потім у розділі Відкрити з виберіть додаток Terminal. Або ви можете використовувати розширення .command замість .sh розширення.


2

Напевно, ви хочете дати AppleScript виглядати. Ця книга Сала Согхояна вважається багатьма першокласною книгою на AppleScript.

Ще один приємний спосіб для користувачів автоматизації додатків Mac - це використання Automator . Ви можете спробувати також. Сподіваюся, це допомагає.

Оновлення

Здається, ви шукаєте щось на зразок сценаріїв оболонки Unix. Ці два навчальні посібники гідні і, здається, висвітлюють основи.


Я бачив це, але AppleScript - це не термінальний сценарій. Я думаю, ви можете зробити: "Перейти до терміналу і написати x команду". Ну, не стиль .bat (і трохи складніше)
Родріго

Схоже, ви шукаєте сценарії оболонки Unix.
Крістіан Коррея

0

Сценарії оболонок. Я не думаю, що Ask Different було б підходящим місцем для його глибокого обговорення, але тут є дуже детальний посібник: http://tldp.org/LDP/abs/html/index.html

Mac OS X має сертифікат UNIX з 10.5 (так?), Тому ця мудрість також застосовна для Linux та інших ОС, схожих на UNIX.

(менш складним способом, Автоматизатор Mac OS X досить проклято потужний, як і редактор AppleScript, обидва з яких можуть виконувати скрипти оболонок та інші команди з програмами, і загортати їх у зручний пакет .app для Launchpad або спільного використання з друзі)


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

І за "підходящим місцем" я вважаю, що сценарій оболонки дійсно найкраще обговорюється на SuperUser: superuser.com/questions/tagged/shell-script
Swizzlr


-2

Для mac є .sh файл aka Shell script


Але зателефонувавши до нього з пошуку, ви захочете скористатися .command. .sh- це керований тип файлу від пошуку (за замовчуванням).
Джейсон Салаз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.