正如标题所说。 我想在 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() call,可用于调用用“外来”语言编写的函数。然而,不推荐这样做,因为它涉及进程 fork ——它可能很慢且不可靠。用一种语言编写所有内容要好得多。当然,您通常无法避免这种情况,而不得不调用其他脚本 - 尽量减少它。
