Відповіді:
$prompt: /path/to/scriptі натисніть Enter. Зверніть увагу, що вам потрібно переконатися, що сценарій виконує дозволи.
/path/to каталозі, наприклад, за допомогою cd /path/toкоманди, ви можете ввести, ./scriptщоб запустити свій скрипт. Не забудьте, в цьому випадку сценарій './' перед 'скриптом'
Ще один спосіб його виконання (на цей раз без встановлення дозволів на виконання):
bash /path/to/scriptname
CD в каталог, який містить сценарій, або помістіть його у папку bin, що знаходиться у вашому $ PATH
потім введіть
./scriptname.sh
якщо в одному каталозі або
scriptname.sh
якщо він знаходиться в папці bin.
./scriptname.shпрацює для мене, але scriptname.shдає scriptname.sh: command not found. -rwxr-xr-xє його дозволами.
cdбудь-якому місці взагалі спричиняє чергове непорозуміння для початківців. Якщо сценарій не має внутрішньо залежностей, які вимагають його запуску в певному каталозі (наприклад, необхідність прочитати файл даних, на який сценарій незрозуміло не дає можливості вказувати), вам ніколи не потрібно cdнікуди його запускати, і дуже часто не захоче.
Ви можете зробити:
sh scriptname.sh
shце симпосилання на bash, або якщо сценарій не використовує будь-яку структуру, характерну для Баша. У першому випадку використання bashзамість sh- єдине правильне, портативне рішення; в останньому випадку це не правильна відповідь на це конкретне питання, оскільки ОП запитала поради щодо конкретного сценарію Баша. Переслідування неправильної відповіді - безвідповідальне; Користувачі, які не розуміють різницю, часто публікують тут, і мені потрібно показати, чому ця відповідь "працював на мене" не працювала для них.
Під - перше , ви повинні зробити його виконуваним з допомогою: chmod +x name_of_your_file_script.
Після того як ви зробили його виконуваним, ви можете запустити його за допомогою ./same_name_of_your_file_script
Змініть свій каталог на те, де знаходиться сценарій , використовуючи команду cd
Потім введіть
bash program-name.sh
cdНікуди не потрібно ; ви можете вказати довільно складну назву шляху як аргумент bash; Дійсно, будь-яка програма, яка приймає аргумент імені файлу, працює таким чином (або жахливо, розумово порушена).
Це стара нитка, але я трапився поперек, і я дивуюсь, що ніхто ще не дав повної відповіді. Тож ось іде ...
Питання: Як виконати це в Терміналі?
Конфузії та конфлікти:
sudoнічого з цього робити. Ця команда зарезервована для запуску команд у якості іншого користувача або "root" (адміністратора) користувача. Чудовий пост тут .(Людина, яка тільки навчається виконувати сценарії, не повинна використовувати цю команду, якщо немає реальної потреби, наприклад, встановлення нової програми. Гарне місце для розміщення сценаріїв знаходиться у вашій папці ~ / bin. Ви можете потрапити туди введіть cd ~/binабо cd $HOME/binз підказки терміналу. Ви будете мати повні дозволи в цій папці.)
Щоб "виконати цей скрипт" з терміналу в системі типу Unix / Linux, потрібно зробити три речі:
Розкажіть системі про розташування сценарію. (вибрати один)
/path/to/script.sh). Ви можете перевірити повний шлях, ввівши pwdабо echo $PWDв терміналі../для шляху (наприклад ./script.sh). Легко.PATHі просто введіть ім’я (наприклад script.sh). Ви можете перевірити систему PATH, ввівши echo $PATHабо echo -e ${PATH//:/\\n}якщо ви хочете акуратніше списку.Скажіть системі, що сценарій має дозвіл на виконання. (вибрати один)
chmod +x /path/to/script.shтермінал.chmod 755 /path/to/script.shякщо ви віддаєте перевагу цифрам. Існує велика обговорення з прохолодним графіком тут .Розкажіть системі тип скрипту. (вибрати один)
BASH /path/to/script.shабо PHP /path/to/script.php) Якщо скрипт має розширення, наприклад .php або .py, він є частиною назви сценарію, і ви повинні включити його.#!/bin/bashу своєму прикладі є ( ). Якщо у вас це є в якості першого рядка сценарію, система використовуватиме цю програму для виконання сценарію. Не потрібно вводити програми чи використовувати розширення.PATHвикористовується, #!/usr/bin/envпісля чого слід назвати програму (наприклад, #!/usr/bin/env bashабо #!/usr/bin/env python3). Є плюси і мінуси , як ретельно обговорюється тут .script.shі script.phpє буквальні імена файлів цих сценаріїв, і що , якщо ви поставите розширення в імені файлу, вам необхідно включити його при запуску сценарію (і навпаки, якщо скрипт Байдуже » не мати розширення, не ставити його). Це не схоже, наприклад, на DOS, де ви можете опустити .batабо .exeвід імені файлу, і файли, необхідні для розширення з невеликого набору, щоб вважати його виконуваним.
Якщо ви знаходитесь в каталозі чи папці, де доступний файл сценарію, просто змініть дозвіл на файл у виконаному режимі, виконавши це
chmod +x your_filename.sh
Після цього ви запустите скрипт, використовуючи наступну команду.
$ sudo ./your_filename.sh
Над "." представляють поточний каталог. Примітка! Якщо ви не перебуваєте в каталозі, де присутній файл скрипту bash, ви змінюєте каталог, у якому знаходиться файл, використовуючи
cd Directory_name/write the complete path
командування. Інакше ваш сценарій не може працювати.
sudoце неправильно і, можливо, жахливо неправильно, якщо ви використовуєте його на ненадійному сценарії, який зловживає повноваженнями, які ви йому давали.
cdдесь важко зрозуміти, але, ймовірно, також неправильна.
chmod +x scriptnameі потім./scriptname.