Як запустити файл .sh або .command у терміналі

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

47

5 Відповіді

Відкрийте термінал, введіть sh/path/to/file і натисніть enter.

Швидше потрібно ввести sh і пробіл, а потім перетягнути файл у вікно і відпустити значок у будь-якому місці вікна.

49
додано
@ fd0, я не розумію. Як sh/path/to/file семантично відрізняється від альтернативного /path/to/file.sh ?
додано Автор Fixpoint, джерело
@ fd0 Про це піклується лінія shebang .
додано Автор Pejvan, джерело
Що, на вашу думку, станеться, якщо сценарій оболонки буде написано в синтаксисі іншої оболонки, наприклад, tcsh, zsh або ksh? Суфікс sh позначає скрипт оболонки, який не є "запуском сценарію в цій оболонці".
додано Автор user2977712, джерело
@ user14492- Коли ви викликаєте сценарій оболонки як shell shell_script , рядок shebang ігнорується. Оболонка читає перший рядок як коментар.
додано Автор user2977712, джерело
@ Pacerier - У першій формі користувач, який викликає, повинен мати можливість читати файл і вибирати, який інтерпретатор буде читати файл. У другій формі права доступу до файлу повинні бути прочитані та виконані для користувача, що викликає, а інтерпретатор визначається хеш-вибухом на першому рядку сценарію. В обох випадках ядро ​​не інтерпретує суфікс у файлі.
додано Автор user2977712, джерело

Крім того, ви також можете зробити це

cd /directory/with/executable
chmod +x executable     # only required if your file is not already executable
./executable

which will also run the executable file with its specified shell (if specified in the shebang #!/bin/(shell)

5
додано
На запитання в ній сказано "запустити скрипт, який я завантажив онлайн". Файли, завантажені з Інтернету, зазвичай мають права доступу до 644.
додано Автор Andrew Dunaway, джерело
@patrix Я думаю, що це не просто інтернет, але кожен файл, який копіюється з іншої файлової системи на вашу через маску за замовчуванням у вашому обліковому записі.
додано Автор rwenz3l, джерело
chmod u+x myfile.sh
cp myfile.sh /usr/local/bin

редагуйте ~/.bash_profile і додайте наступний рядок:

alias myfile=./myfile.sh

виконати наступний командний рядок:

source ~/.bash_profile

тоді ви зможете запускати свій файл як програму

$ myfile

2
додано

Причина не працює після завантаження - дозволу на доступ до файлу не дозволяють. Щоб дозволити виконання, відкрийте термінал і введіть тип chmod 755/path/to/script . Замість того, щоб вводити повний шлях, можна перетягнути скрипт у вікно Термінал з Finder. Потім, щоб виконати, просто введіть /path/to/script . Знову ж таки, ви можете перетягнути файл у вікно терміналу. Цей синтаксис повинен виконувати скрипт, використовуючи правильну оболонку, як визначено на першому рядку сценарію.

2
додано
Мій файл .sh відкривається в текстовому редакторі, з яким я створив файл. Як замість цього відкрити його в терміналі? Я встановив правильні дозволи.
додано Автор detly, джерело
@bart потрібно додати розширення .command для виконання скрипту безпосередньо в finder.
додано Автор rwenz3l, джерело

Щоб запустити файли сценарію, виконайте наведені нижче дії.

  1. Клацніть правою кнопкою миші на файлі .sh.

  2. Наведіть курсор на Відкрити за допомогою .

  3. Виберіть Інший....

  4. Ви повинні бути в теці Програми . Відкрийте папку Утиліти та виберіть Terminal.app.

  5. Якщо ви не можете вибрати Terminal.app, змініть активовані програми на Рекомендовані програми на Усі програми . Він знаходиться внизу вікна.

  6. Якщо потрібно відкрити кожен файл .sh за допомогою Terminal.app, поставте галочку Завжди відкривати за допомогою .

  7. Натисніть кнопку Відкрити в нижньому правому куті вікна.

2
додано