[英]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.