我想知道您是否可以为命令添加别名,并在同一行代码中使用它,请参见以下示例:
alias php=/opt/plesk/php/5.6/bin/php; php -v;
我希望它输出PHP 5.6。
alias php=/opt/plesk/php/7.3/bin/php; php -v;
我希望它输出PHP 7.3。但是,我得到的是:
php -v
# outputs 5.6
alias php=/opt/plesk/php/5.6/bin/php; php -v;
# outputs 5.6
alias php=/opt/plesk/php/7.3/bin/php; php -v;
# outputs 5.6
php -v
# outputs 7.3
我尝试过该&&运算符,但结果相同。
我想在gitlab持续集成脚本中使用此脚本,该脚本通过ssh -t传递字符串来执行脚本。但是我正在调用几个php函数,并且我不想每次都粘贴完整的php路径:
我认为在执行任何操作之前,正在解析命令行并应用别名。但是,您可以使用shell函数来实现。我没有PHP,但是我有几个Perl版本可以测试:
$ perl -v |grep version # V
This is perl 5, version 26, subversion 2 (v5.26.2) built for x86_64-cygwin-threads-multi
$ perl(){ /usr/bin/perl "$@" ; } ; perl -v |grep version
This is perl 5, version 26, subversion 3 (v5.26.3) built for x86_64-cygwin-threads-multi
# ^
因此定义传递功能
perl(){ /usr/bin/perl "$@" ; }
更改perl以后在命令行中对该单词的解释方式。请注意,您确实需要;之前的内容}-请参阅此答案。
对于您的用例,我建议使用其他名称以避免混淆。例如:
currphp(){ /opt/plesk/php/5.6/bin/php "$@" ; } ; currphp -v
currphp(){ /opt/plesk/php/7.3/bin/php "$@" ; } ; currphp -v
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。