簡體   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