Як створити універсальний (сценарій) файл для Mac, заснований на декількох командах терміналу


20

У мене є кілька команд терміналів, які я використовую для усунення несправностей, ввівши їх по черзі у вікно терміналу.

Ці команди вимагають введення пароля користувача.

Я шукаю спосіб створити універсальний (сценарій) файл із цими командами. Я хочу мати змогу запустити файл на Mac, лише двічі клацнувши по ньому або перетягнувши файл на піктограму Terminal.

Я ніколи раніше подібного не робив. Чи є якийсь спосіб створити такий сценарій? Порадьте, будь ласка.


Ви хочете запитати, що ви хочете запустити сценарій без того, щоб користувач вводив свій пароль?
Аллан

@Allan Я хочу запустити один файл замість кількох команд . Запустити його без того, щоб користувач хоча б раз вводив свій пароль, було б добре, але, швидше за все, неможливо, якщо я не помиляюся.
0леся

Це, безумовно, можливо, якщо вам не потрібно робити щось, що вимагає адміністратора - дивіться мою відповідь нижче
Cullub

Відповіді:


30

Коротка відповідь

.commandСценарій повинен зробити трюк


Крок за кроком

  1. Відкрийте TextEdit та створіть новий файл
  2. Перетворіть його у звичайний текст, натиснувши Формат> Зробити звичайний текст
  3. Додайте команди, по одній на рядок. Наприклад, ви можете:
    #! /bin/bash cd ~/Desktop mkdir myCoolFolder cd myCoolFolder

  4. Запустіть chmod u+x ~/Desktop/myCommandScript.commandу своєму терміналі, де ~/Desktop/myCommandScript.commandзнаходиться шлях до вашого сценарію. Це дасть терміналу дозвіл на запуск файлу.

  5. Ви закінчили! Двічі клацніть файл для запуску. Перетягування піктограми терміналу також буде працювати.

Примітки:

  • Якщо вам потрібно зробити щось, для чого потрібен кореневий (адміністратор) доступ, ви можете префіксувати свою команду sudo. Коли сценарій запуститься, вам доведеться ввести свій пароль (і бути адміністратором)
  • Якщо кінцевий користувач не є адміністратором, але вам потрібно зробити щось, для чого потрібен кореневий доступ, ви можете скористатися su someAdminNameкомандою, яка виконує команду як someAdminName(вам знадобиться його пароль).

Ви також можете ознайомитись тут на "Переповнення стека" для отримання додаткової інформації.


Чи є спосіб зробити командний файл не виходити з системи? Я хочу мати командний файл, який відкриває термінал із заздалегідь визначеною змінною шляху.
Рой

8

Сценарій - це лише ряд команд, тому ви можете вкласти його в скрипт bash.

#!/bin/bash

command 1
command 2
command 3

Тепер це все залежить від типів команд і від того, потребує втручання користувача чи ні.

Однак, якщо ви отримуєте діагностичну інформацію, наприклад, у вас може бути сценарій, який є

#!/bin/bash

# Get SMART status of main drive
diskutil info disk0 | grep -i smart

# Get the model of the machine in question
system_profiler SPHardwareDataType | grep -i Identifier

Це лише приклади. Майте на увазі, що будь-який генерований вихід буде надсилатися на консоль (екран). Однак ви можете перенаправити вихід на файл, додавши >> /path/to/outputfile.txtв кінці кожної команди, щоб у вас був файл, який ви зможете проаналізувати, коли файл закінчиться.

Ви можете назвати файл diagnostics.shі розмістити його де завгодно. Просто переконайтеся, що ви зробите його виконуваним, видавши команду chmod +x diagnostics.shта використовуйте ./diagnostics.shдля її виконання або двічі клацніть на ній, щоб запустити її, якщо вона збережена на робочому столі .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.