Відповіді:
$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
.