Bash скрипт получает сообщение об ошибке «Нет такого файла или каталога»? - PullRequest
0 голосов
/ 12 января 2019

У меня есть скрипт bash с именем args.sh. Он просто должен распечатать аргумент, переданный из командной строки.

#!/bin/bash 
echo "Argument passed in: $1"

Я пытался chmod +x args.sh, но я получаю -bash: ./args: No such file or directory. Я делаю это на Mac.

Как создать исполняемый файл для вызова скрипта, вызвав ./args (без расширения файла .sh)?

Любая помощь очень ценится, спасибо.

1 Ответ

0 голосов
/ 12 января 2019

Исполняемые файлы в Linux / Unix не имеют расширений. Итак, если вы назвали свой файл «args.sh», то ваш исполняемый файл - «args.sh». Переименуйте его в «args», если хотите позвонить с помощью «./args".

Затем ядро ​​выясняет, как загрузить исполняемый файл, посмотрев на «волшебную строку» в начале файла. В этом случае волшебная строка "#!" (также известный как «shebang»), который говорит ядру использовать исполняемый файл в оставшейся части строки для запуска этого сценария, в вашем случае, «/ bin / bash». Другие магические строки сообщат ядру, что это двоичный файл формата ELF или формата .out или что у вас есть, чтобы ядро ​​знало, как их загрузить, или что оно вообще не может их загрузить (например, если это RISC / 6000 для AIX).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...