回答
是的,從perldoc perlrun
(下-S
開關):
#!/bin/sh
eval 'exec /usr/bin/perl -wS $0 ${1+"[email protected]"}'
if $running_under_some_shell;
請參閱完整的故事文檔。
不錯!謝謝,這是什麼$ {1 +「$ @」}爲?是否有一些錯誤評估? – infinitloop
在Bourne shell的現代實現中,它等價於'「$ @」'。較早的'sh'實現需要使用更復雜的表達式。 – ErikR
如果定義了$ 1,則將參數展開爲「$ @」,該參數是所有參數的列表,每個參數都有引用。如果沒有定義$ 1,則不會展開任何內容。在舊shell實現中是必需的,因爲只有「$ @」(帶引號)會擴展爲空字符串的單個參數。見http://www.in-ulm.de/~mascheck/various/bourne_args/ – runrig
僅當您想在shell提示符下直接調用腳本時,shebang(#!
)纔是必需的。 ./yourscript
。你總是可以做perl yourscript
並跳過shebang。
如果你這樣做,那麼你需要明確調用Perl。如果該行在那裏,那麼系統知道它是一個Perl腳本,所以當你使腳本可執行時,你可以直接編寫腳本./script
如果你關心的是硬編碼一個常量路徑(例如#!/ usr !/ bin中/ perl的,而不是#在/ usr/local/bin中/ perl的),然後使用:
#!/usr/bin/env perl
這使Perl解釋器在您的PATH尋求,使你的腳本更有點便攜式(的Windows在旁邊)。
- 1. 我們可以在perl腳本中輸入shell腳本嗎?
- 2. 我可以爲perl腳本setuid嗎?
- 3. 我可以在shebang行中使用perl的開關和/ bin/env嗎?
- 4. Unix腳本自動插入shebang到perl文件
- 5. 我可以在我的Perl腳本中使用HTML :: Template嗎?
- 6. 有沒有一種方法可以爲groovy腳本創建多行shebang?
- 7. 我可以在ViM中運行當前腳本或腳本嗎?
- 8. 如何處理在安裝腳本中有shebang行的腳本?
- 9. 運行Perl腳本之前,我可以顯式指定$ 0嗎?
- 10. 可以在Perl腳本中使用Perl單線程嗎?
- 11. 如何修改Perl或shell腳本中的shebang行?
- 12. 我可以執行ipython腳本嗎?
- 13. 我可以使用Perl下載PHP腳本中的文件嗎?
- 14. Perl DBI腳本可以在db2上執行「緩衝插入」嗎?
- 15. 在我的perl腳本中運行一個非perl腳本?
- 16. 沒有從UNIX shell腳本
- 17. 我可以在Apache 2.2.9下運行沒有解析的頭文件腳本嗎?
- 18. 我可以在沒有Java腳本的情況下進行TR點擊嗎?
- 19. 我可以填充從Perl腳本
- 20. 我可以在unix腳本中調用ssh中的函數
- 21. 運行Perl腳本1沒有的crontab
- 22. qsub正在csh中執行我的bash腳本儘管shebang
- 23. 如何在'#!/ usr/bin/env perl'- shebang中設置perl腳本中的污點模式?
- 24. 我可以通過unix shell腳本在Windows中創建目錄嗎?
- 25. 我們可以用MinGW來編譯Perl腳本嗎?
- 26. 我可以使用perl腳本編輯TLV文件嗎?
- 27. 如果沒有越獄,iOS可以運行python腳本嗎?
- 28. Perl如何處理shebang行?
- 29. 我可以在Python中調用Perl嗎?
- 30. 我可以在chrome devtools中執行nodejs javascript腳本嗎?
Unix或Windows(或??)。 Windows並不關心第一行是什麼,儘管perl仍然會遵守#!的選項。線。 – runrig
對不起,我應該提到它,Unix :) – infinitloop
爲什麼你會想這麼做?什麼是shebang的問題? –