我想创建命令并在Linux/Mac/Windows上注册例如,我想使用$ ownco create project hello
但是ownc
是这样的php脚本(ownco.php
或ownco
):
<?php
if (count($argv) > 3) {
echo 'Hi';
} else {
echo 'Ups!';
}
我不想使用php ownco ...
谢谢
在文件的第一行添加一个shebang,类似于:
#!/usr/bin/php
使文件可执行:
chmod +x ./ownco.php
现在,您可以在不指定解释器的情况下从命令行运行脚本:
% ./path/to/ownco.php
Ups!
但是,为了避免写入ownco.php
的完整路径,您需要将其保存在$PATH
变量中指定的目录中,这通常看起来像这样:
% echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
您可以看到每个目录都由:
分隔。您可以将脚本移动到其中一个目录,也可以向$PATH
变量添加新目录。通常这是我在~/.bashrc
:中添加一点代码完成的
export PATH="$PATH:/my/new/place/to/keep/executables"
有些人喜欢在他们的主目录中创建一个bin
目录,并在那里保留小脚本。
% cat ~/.bashrc
...
...
export PATH="$PATH:$HOME/bin"
...
...
% cat > ~/bin/script1 <<EOL
#!/usr/bin/php
<?php
echo("my first scriptn");
?>
EOL
% chmod +x ~/bin/script1
% script1
my first script
注:
shebang可以在可执行文件的第一行中指定,并以#!
开头。
我选择使用/usr/bin/php
作为可执行文件。这是PHP的存储路径。
有些人喜欢使用/usr/bin/env php
,它将运行$PATH
变量中指定的PHP版本。查看更多