2009-09-19 2 views
0

Я только что узнал, что могу использовать chmod выполнить myscript.sh исполняемый файл и запустить его как $ ./myscript.sh Но как я могу приложить к нему пользовательскую команду, например $ connectme [options]?Как запустить мою собственную программу с помощью команды в Shell?

+1

BTW-- Я голосовал, чтобы подтолкнуть это суперпользователя как «Как запустить оболочку» тип вопроса, но если Пабло больше на правильном пути то это была ошибка. – dmckee

ответ

3

Вы должны сделать две вещи:

  1. Дайте имя, которое вы хотите использовать. Либо просто переименуйте его, либо установите ссылку (жесткую или символическую). Убедитесь, что правильно названный объект имеет права доступа.
  2. Убедитесь, что он находится в вашем пути. Но положив «.» в вас PATH это плохая идея (tm), поэтому скопируйте ее в $HOME/bin и положите , что в вас.

Совершенно другой подход. Большинство оболочек поддерживают псевдонимы. Вы можете определить его для запуска скрипта.


Примечание: Переменная среды PATH говорит оболочку, где искать программы для запуска (если не указан полный путь, как /home/jdoe/scripts/myscript.sh или ./myscript.sh), она состоит из «:» разделенного списка каталогов изучить. Вы можете проверить ваши с:

$ printenv PATH 

приводит меня в

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/X11R6/bin 

которые являются обычными каталогами для исполняемых файлов. Вы можете добавить новый элемент пути с (в/bin/sh и производные):

$ export PATH=$PATH:$HOME/bin 

в csh и производные используют

$ setenv PATH $PATH:$HOME/bin 

либо из них, что приведет к оболочке также поиск ~/bin для вещей запустить. Затем переместите скрипт в этот каталог (если хотите, введите новое имя). Убедитесь, что вы выполняете разрешения для скрипта и просто введите его имя, как любая другая команда.

Fianlly, использование расширения «.sh» для обозначения сценария оболочки предназначено только для потребления человеком. Unix не заботится о том, как вы называете свой скрипт: это так называемая «shebang» («#!») в первой строке скрипта, которую ОС использует для поиска интерпретатора.

+0

Я не хочу псевдонима, и не могли бы вы дать мне несколько примеров того, как переименование работает? Я думал, что бы вы ни назвали его, вы всегда запускаетесь как /usr/dir/myscript.sh – derrdji

+0

Я думаю, что я неправильно истолковал вопрос. –

1

Вам нужно узнать о аргументах в ПРОГРАММИРОВАНИИ BASH. Here - хороший учебник по ним. Проверьте раздел № 4.

В принципе, вам нужно использовать специальные переменные $ 1, $ 2, $ 3 для обозначения аргументов первой, второй и третьей аргументов соответственно.

Пример:

$ ./mycript.sh A-Rod 

С MyScript.ш существо:

#!/bin/bash 

echo "Hello $1" 

Напечатает:

Hello A-Rod 
+0

Как поклонник Red Sox, я чувствую себя обязанным -1 этим ответом .... –

+0

hehehehehehehe ... Нет! Да ладно! Я имел в виду теннис «A-Rod» (Энди Роддик) ;-) –

+0

Большое спасибо за tut. Я знаю о аргументах, но мне нужно сказать, что у программы есть интерфейс типа «$ connectme ​​[options]» вместо того, чтобы запускать его как «./myscript.sh» – derrdji

Смежные вопросы