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

20

У меня есть несколько команд терминала, которые я использую для устранения неполадок, вводя их одну за другой в окно терминала.

Эти команды требуют ввода пароля пользователя.

Я ищу способ создать универсальный (скрипт) файл с этими командами. Я хочу иметь возможность запустить файл на Mac, просто дважды щелкнув по нему или перетащив файл на значок терминала.

Я никогда не делал ничего подобного раньше. Есть ли способ создать такой скрипт? Пожалуйста, порекомендуйте.

0lesya
источник
Вы хотите спросить, хотите ли вы запустить скрипт, не заставляя пользователя вводить свой пароль?
Аллан
@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. Вы сделали! Дважды щелкните файл для запуска. Перетаскивание на значок терминала также будет работать.

Примечания:

  • Если вам нужно сделать что-то, требующее доступа с правами администратора (root), вы можете использовать префикс вашей команды sudo. Когда скрипт запустится, вам нужно будет ввести свой пароль (и быть администратором)
  • Если конечный пользователь не является администратором, но вам нужно сделать что-то, требующее root-доступа, вы можете использовать его su someAdminName, который будет выполнять команду как someAdminName(вам понадобится его пароль).

Вы также можете посмотреть здесь на Stack Overflow для получения дополнительной информации.

Cullub
источник
Есть ли способ заставить командный файл не выходить из системы? Я хочу иметь командный файл, который открывает терминал с предопределенной переменной пути.
Рой
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для выполнения или дважды щелкнув по ней, чтобы запустить ее, если она сохранена на вашем рабочем столе .

Аллан
источник