[英]use php and perl and R so on in a script like .sh of bash in linux? Is it possible?
如标题所示。 我想在脚本文件(如.bash的.sh)中使用php和perl,但如果可能,我不这样做吗? 如果可以的话,可以在bash脚本中编写php / perl / R,这将非常方便! 谢谢.....就像:
#/bin/bash
some bash code
....
#/usr/bin/php
some php code
...
#/usr/bin/perl
some perl code
...
并非如此-至少不是您期望的那样。
要了解原因,您需要了解hashbang( #!
)的工作方式。
Linux内核在尝试执行文件时,首先检查它的前2个字节是否等于#
和!
。 如果是这样,那么直到新行( /usr/bin/perl
或/usr/bin/php
)之前的剩余字节都被视为脚本执行程序的名称。 现在,进程重新启动,并尝试执行/usr/bin/perl <original_script>
。 由于perl
是本机Linux可执行文件,因此解析过程最终可以停止并且程序可以正常执行。
请注意,此过程仅查找文件的前2个字节。 您希望它可用于其他行,但这将不起作用。
但是,您可以做的是用一种语言( bash
, perl
, php
或R
编写程序。 然后,每种语言都有等效的system()
调用,可用于调用以“外来”语言编写的函数。 但是不建议这样做,因为它涉及流程派生-它可能很慢且不可靠。 最好只用一种语言编写所有内容。 当然,通常您无法避免这种情况,而必须调用其他脚本-尝试将其最小化。
#/bin/bash
#some bash code
echo "hello from bash"
#some php code
php -r'
print "hello from php\n";
'
#some perl code
perl -e'
print "hello from perl\n";
'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.