繁体   English   中英

在Linux中bash的.sh等脚本中使用php,perl和R等? 可能吗?

[英]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个字节。 您希望它可用于其他行,但这将不起作用。

但是,您可以做的是用一种语言( bashperlphpR编写程序。 然后,每种语言都有等效的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM