Как запустить мою собственную программу, используя команду в Shell? - PullRequest
0 голосов
/ 19 сентября 2009

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

Ответы [ 2 ]

3 голосов
/ 19 сентября 2009

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

  1. Дайте имя, которое вы хотите использовать. Либо просто переименуйте его, либо установите ссылку (жесткую или символическую). Убедитесь, что правильно названный объект имеет необходимые разрешения.
  2. Убедитесь, что он на вашем пути. Но помещать в вас "." PATH - плохая идея (тм), поэтому скопируйте его в $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

in csh и производные

$ setenv PATH $PATH:$HOME/bin

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

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

1 голос
/ 19 сентября 2009

Вам нужно узнать об аргументах в BASH PROGRAMMING. Здесь хороший урок по ним. Проверьте секцию № 4.

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

Пример:

$ ./mycript.sh A-Rod

С использованием myscript.sh:

#!/bin/bash

echo "Hello $1"

Напечатает:

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