Вспоминая ностальгические чувства, я вспомнил файлы .bat в DOS. :)
Вот в чем дело: Каждый раз, когда мне нужно сгенерировать документацию для данного веб-приложения, я должен:
sudo phpdoc -o HTML: frames: earthli -d public_html / yoursite. У dev / application / -t public_html / yoursite.dev / docs /
есть способ сделать ярлык к вышеупомянутому, так что мы можем набрать только:
sudo generateDoc.sh -a yoursite.dev
или еще лучше:
sudo generateDoc.sh -theVariableThatNeedsTobeChangedOnBashHere
Так что, если мы передадим yoursite.dev в командной строке, bash будет иметь yoursite.dev, если мы напишем yoursite2.dev тогда, bash будет иметь yoursite2.dev и так далее ...
Любая подсказка?
Большое спасибо.
Попробуйте:
#!/bin/bash
phpdoc -o HTML:frames:earthli -d public_html/"$1"/application/ \
-t public_html/"$1"/docs/
Назовите его как sudo ./script.sh yoursite
.
Вы также можете поместить эту функцию в ваш .bashrc:
generateDocs() {
sudo phpdoc -o HTML:frames:earthli \
-d "public_html/$1/application/" \
-t "public_html/$1/docs/"
}
, затем
generateDocs yoursite.dev
Вот пример сценария, который я написал. $*
означает «все аргументы переданы». Важно отметить, что они в кавычках, потому что в противном случае пробел нарушит команду. Quodlibet - приятная музыкальная библиотека / плеер, кстати.
jake@daedalus:~$ cat bin/play
#!/bin/bash
quodlibet --query "$*"
quodlibet --next
jake@daedalus:~$ play garrison keillor rhubarb pie
Как сказал Фидо, не забудьте установить файл как исполняемый с помощью chmod +x programName
.
Что-то, что вы могли бы рассмотреть, это сделать каталог bin
в вашей домашней папке и добавить его в свой $PATH
. Затем вы можете вызывать команду независимо от того, в какой папке вы находитесь. У меня есть эта строка в моем .bashrc: PATH=$HOME/bin:$PATH
. Если вы этого не сделаете, вы должны использовать абсолютный или относительный путь при вызове сценария, например:
jake@daedalus:/usr/local/share/docs$ /home/jake/bin/play foo fighters everlong
jake@daedalus:~/bin$ ./play placebo where is my mind
Я настоятельно рекомендую Руководство Гримуара по сценариям SH . Что вам нужно сделать, это использовать Позиционные параметры оболочки , чтобы получить аргументы и вставить их в вашу команду. Есть также TLDP более глубокая обработка позиционных параметров BASH . Я бы начал с Гримуара, а затем прочитал TLDP, когда вы будете готовы к более сложному изучению этого вопроса.
Откройте ваш любимый текстовый редактор, вставьте следующее:
args=("$@")
sudo phpdoc -o HTML:frames:earthli -d public_html/${args[0]}/application/ -t public_html/${args[0]}/docs/
и сохраните его как (в данном случае) «generateDoc.sh». Следующее, что нужно сделать, это дать права на исполнение для вашего файла, поэтому откройте терминал и запустите: $ chmod +x generateDoc.sh
Теперь все, что вам нужно сделать, это вызвать файл: $ ./generateDoc.sh yoursite.dev
нет необходимости в [ 113] здесь, потому что он уже находится внутри файла sh.
Надеюсь, это поможет!