Сценарий оболочки, который можно выполнить, просто набрав его имя - PullRequest
0 голосов
/ 26 декабря 2011

У меня есть сценарий оболочки, который принимает одну переменную в качестве аргумента. Теперь я выполняю его, набрав bash script.sh arg1, можно ли вызвать его, просто набрав script arg1? спасибо!

Ответы [ 4 ]

5 голосов
/ 26 декабря 2011

Вам нужно запустить скрипт со строкой:

#!/bin/bash

и сделать его исполняемым файлом: chmod +x script.sh. Затем вы можете запустить его, набрав ./script.sh или даже просто script.sh, если он находится в одном из путей из переменной среды PATH.

Обратите внимание, что имя файла не имеет значения. Это может быть script.sh, script или что угодно.

3 голосов
/ 26 декабря 2011

Вот как можно получить ./script arg1:

  • убедитесь, что первая строка вашего скрипта #!/bin/bash;
  • переименуйте его в script;
  • перейдите в каталог, в котором находится скрипт, и введите приведенное выше.

Если вы хотите набрать script arg1 напрямую:

  • убедитесь, что на вашем пути есть $HOME/bin;
  • тип install -D -m700 /path/to/script $HOME/bin/script
1 голос
/ 26 декабря 2011

Да, если вы переименуете его в script, установите исполняемый бит, используете правильную строку shebang и поместите папку, в которой он находится, в вашу переменную $ PATH:

mv script.sh script
chmod u+x script
make sure the first line in the script is #!/bin/bash (or the correct interpreter if it's not bash)
PATH=${PATH}:/path/to/script

После этого выВы можете запустить его, просто набрав «script arg1».

$ PATH - это список папок, разделенных символом:, в который заглядывает оболочка, когда вы выполняете что-то без указания пути.Вам нужно будет поместить эту строку (последнюю строку) в ваш .bashrc (или файл, который ваша оболочка читает при входе в систему, если вы не используете bash), чтобы сделать его постоянным.

0 голосов
/ 26 декабря 2011

Поместите скрипт в /usr/local/bin и убедитесь, что путь добавлен в переменную $PATH.

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