Как мне сделать исполняемый файл скрипта? [дубликат]

Я новичок в Linux. Я пытаюсь создать сценарий, который что-то печатает и инициирует команду выключения. Это мой сценарий:

#!/bin/bash    

echo Hello WOOOOORRRRRLLLLDDDDDDD

echo sudo poweroff

Каждый раз, когда я пытаюсь запустить свой сценарий, используя

chmod +x Hello World BASH

или ./Hello World BASH

, я получаю следующее сообщение об ошибке:

chmod: cannot access 'Hello': No such file or directory
chmod: cannot access 'World': No such file or directory
chmod: cannot access 'BASH': No such file or directory

В общем, каждый раз Я пытаюсь запустить этот скрипт, выскакивает сообщение об ошибке «нет такого файла или каталога». Как это исправить?

0
задан 29 June 2017 в 17:20

2 ответа

Короткий ответ

Выполнение эти команды в этом порядке:

chmod +x "Hello World BASH"
./"Hello World BASH"

ответ Long

имя файла А с пробелами нужно заключить в кавычки (с одинарными или двойными кавычками) или оставить (с обратными косыми чертами) так, чтобы оболочка поняла, что это - вся часть имени файла. Иначе это повредится на пробелах и интерпретирует одно имя файла (Hello World BASH), поскольку три имен файлов (Hello, World, и BASH)

Также chmod +x не запускают скрипт, это делает исполняемый файл сценария.

Между прочим, если Вы не имеете, имеют, выполняют полномочия для данного файла, можно назвать интерпретатор для выполнения его:

bash "Hello World BASH"
0
ответ дан 3 November 2019 в 00:40

Поскольку имя файла имеет пробелы в нем, необходимо использовать кавычки или Escape, таким образом, пространство не заставляет его быть похожим на 3 различных имен файлов:

chmod a+x "Hello World BASH"
"./Hello World BASH"

Или

chmod a+x Hello\ World\ BASH
./Hello\ World\ BASH
1
ответ дан 3 November 2019 в 00:40

Другие вопросы по тегам:

Похожие вопросы: