На этот вопрос уже есть ответ:
В Ubuntu, если я наберу which more
, путь к команде more
отобразится как / bin / more
, указывая, что это файл. Но я не вижу для него ни расширения, ни связанного типа, вероятно, потому, что это простые исполняемые файлы. Как мне создать такой файл, который может отображать
простую строку?
Я не хочу создавать файл .sh
, потому что если я хочу передать файл как команду с другой командой, мне также придется ввести .sh
.
TIA
Вы не должны использовать .sh
расширение для Ваших сценариев оболочки. Они должны начать с хижины сигнализировать, что это - сценарий оболочки. #!/bin/bash
хижина для сценария удара, или если Вы хотели бы, чтобы ОС решила который оболочка использовать, на основе использования оболочки по умолчанию #!/bin/sh
.
, Чтобы смочь выполнить сценарий как команду, только путем введения имени, это должно иметь; хижина, исполняемые полномочия, и должны быть расположены в каталоге, который включен в Вашу переменную окружения PATH.
Вы видите все эти местоположения при помощи:
echo $PATH
вывод должен быть:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
, После того как те три условия соблюдали, Ваш сценарий выполнится, просто введя имя.
Un*x как ОС не интересуются расширениями файла. Для создания исполняемого файла сценария оболочки поместите
#!/bin/sh
как первая строка в сценарии для определения интерпретатора (или #!/bin/bash
, если Вы должны колотить расширения, или безотносительно оболочки, Вы выбрали). И измените режим на исполняемый файл:
chmod a+x <filename>
необходимо предоставить полный или относительный путь исполняемому файлу, если это не находится в каталоге в среде ПУТИ.
Редактирование:
, Если существует./мусорное ведро подкаталогов в Вашем корневом каталоге, это будет обычно включаться в Ваш $PATH при входе в систему (см. .profile сценарий). Таким образом, можно создать $HOME/bin и поместить исполняемый файл там