为了唤起怀旧之情,我想起了 DOS 上的 .bat 文件。:)
事情是这样的:每次我需要为给定的 Web 应用程序生成文档时,我必须:
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 等等……
有什么线索吗?
多谢。
答案1
尝试这个:
#!/bin/bash
phpdoc -o HTML:frames:earthli -d public_html/"$1"/application/ \
-t public_html/"$1"/docs/
称之为sudo ./script.sh yoursite
。
答案2
您也可以将此函数放在您的 .bashrc 中:
generateDocs() {
sudo phpdoc -o HTML:frames:earthli \
-d "public_html/$1/application/" \
-t "public_html/$1/docs/"
}
然后
generateDocs yoursite.dev
答案3
这是我编写的一个示例脚本。$*
意思是“传递的所有参数”。重要的是,它们放在引号中,否则空格会破坏命令。顺便说一句,Quodlibet 是一个很棒的音乐库/播放器。
jake@daedalus:~$ cat bin/play
#!/bin/bash
quodlibet --query "$*"
quodlibet --next
jake@daedalus:~$ play garrison keillor rhubarb pie
就像 Fido 所说的那样,不要忘记将文件设置为可执行文件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
我强烈推荐Grymoire 的 SH 脚本指南. 你需要做的是使用 shell 的位置参数接受参数并将其插入到命令中。还有TLDP更深入地处理BASH 的位置参数。我会先阅读 Grymoire 的书,然后在您准备好更深入地了解该主题时再阅读 TLDP。
答案4
打开您喜欢的文本编辑器,粘贴以下内容:
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
不需要sudo
,因为它已经在 sh 文件中了。
希望这可以帮助!