標題幾乎說明了一切。我爲我的主要項目使用clojure,但它不是一個好的腳本語言,因爲jvm的啓動速度很慢,並且與某些unixy事物沒有很好的接口。所以我正在尋找一種能夠很好地用作腳本語言的lisp,例如具有良好的管理unix進程的界面,可以輕鬆使用async io等。什麼是unix腳本的最佳lisp/scheme?
回答
Scsh(代表「Scheme shell」)可以在http://www.scsh.net處獲得。這是「Scheme 48(符合R5RS標準的新技術Scheme系統)的一個變體......專爲編寫真實的獨立Unix程序和shell腳本而設計。」
有關係統管理的很好的介紹可以在http://www.theillien.com/Sys_Admin_v12/html/v11/i01/a2.htm找到。
Racket是一個非常好的Scheme實現。它非常強大。其中的一個介紹是從頭開發一個Web服務器。
CLISP,Common Lisp的實現,對Unix腳本很有用。
CLISP有很多的擴展,讓有用的腳本:Unicode支持,正則表達式,各種命令行選項,socket流,管道,...
此外CLISP具有相對佔地面積小,是用C爲便攜性和快速啓動 - 對於Common Lisp。
ESHELL與elisp的交互使用:
「ESHELL能夠調用在Emacs加載幾乎任何的elisp功能這一點。這種靈活性是無與倫比的;沒有外殼能夠接近Eshell能做的事情行爲,這個功能被Eshell大量使用(並鼓勵!)。如果你想在Emacs中打開foobar.txt文件,你只需調用find-file foobar.txt文件,Eshell就會將其映射到elisp調用文件(find-file「foobar.txt」)併爲你打開文件。「
從http://www.masteringemacs.org/articles/2010/12/13/complete-guide-mastering-eshell/
我就遇到了這個頁面幾次,而尋找一個很好的方式,端口一些日益-unweildy的bash腳本到一個理智的語言。由於這些腳本已經調用了幾拍的腳本,這是有道理的刪除一層間接性,並使用球拍的一切。
經過一番搜索,我碰到了球拍的shell-pipeline包。從文檔:
該庫使得外部程序和球拍功能的unix風格管線變得輕鬆。你可以像
(run-pipeline '(cat /etc/passwd) '(grep root) '(cut -d : -f 1))
那樣編寫東西,它會將"root\n"
打印到標準輸出(在unix系統上)並返回0
。要以字符串形式獲取輸出,請使用run-pipeline/out
。您還可以將球拍功能放入管道中。如果您的球拍實施爲grep
,名爲my-grep
,則可以使用(run-pipeline '(cat /etc/passwd) `(,my-grep root) '(cut -d : -f 1))
獲得相同的結果。因此,您可以在Racket中編寫各種過濾器函數,而不是使用shell命令。
- 1. 遍歷長腳本的最佳方法是什麼?
- 2. 什麼是剪裁/調整圖像的最佳php/js腳本?
- 3. Magento1.8 - 創建訂單的最佳腳本是什麼?
- 4. 寫入批處理腳本的最佳方式是什麼?
- 5. 在Python中創建「runner」腳本的最佳方式是什麼?
- 6. 什麼是回到腳本開始的最佳方式?
- 7. 運行python腳本的最佳做法是什麼?
- 8. jenkins hearbeat腳本的最佳做法是什麼?
- 9. 配置運行腳本的最佳方法是什麼?
- 10. 從文件加載腳本的最佳方式是什麼?
- 11. 將常量導入groovy腳本的最佳方法是什麼?
- 12. 什麼是您的最佳PowerShell超高效生產腳本?
- 13. 什麼是一個項目的最佳文檔腳本?
- 14. 什麼是再次通過腳本的最佳方式?
- 15. 獲取腳本輸出到elasticsearch的最佳方式是什麼?
- 16. php腳本中的最佳MYSQL查詢號是什麼?
- 17. 在Xulrunner中獲取腳本輸出(shell腳本)的最佳方式是什麼?
- 18. 什麼是編寫跨平臺腳本的最佳方式,比如unix中的bash?
- 19. unix腳本有什麼問題
- 20. 最佳實踐:構建頁眉和頁腳的最佳方式是什麼?
- 21. 編譯macintosh的perl腳本的最佳方式是什麼? (os x)
- 22. 定製小部件的JS腳本的最佳方式是什麼?
- 23. 腳印識別的最佳語言是什麼?
- 24. 在Unix Shell腳本中做'-a'是什麼
- 25. 確定當前PowerShell腳本位置的最佳方法是什麼?
- 26. 什麼是具有IDEA自動完成對菊腳本的最佳方式
- 27. 在Windows中異步運行多次PHP腳本的最佳方式是什麼?
- 28. 讓Google Spreadsheets腳本每年觸發一次的最佳方式是什麼?
- 29. 從URL字符串去除腳本標記的最佳方式是什麼?
- 30. 爲start_server和starman編寫init.d腳本的最佳方法是什麼?
是的,scsh很好,部分是因爲它非常明確地是它設計的目的。然而,Racket(在另一個答案中提到)也是一個很好的選擇,因爲它非常完整,它明確表示scsh所有的系統支持。我之前會明確表示scsh,但最近我一直在使用球拍來做這樣的事情。 – 2010-11-16 12:45:49