主要观点:探讨用 SBCL 替代 bash 编写脚本,介绍 Common Lisp 在处理路径名、启动程序等方面的优势及与 shell 脚本的对比,包括运行 Lisp 文件作为脚本的方法、路径名相关操作、启动程序的方式等,同时提及可保留 UNIX 工具部分功能,不必完全摒弃 shell。
关键信息:
- 用
#!/usr/bin/sbcl --script
运行 Lisp 文件,可加chmod a+x
使其可执行,若需 Quicklisp 等立即可用可替换为#!/usr/bin/sbcl --load /home/youruser/.sbclrc --script
。 - Common Lisp 有路径对象,可进行路径名操作,如获取名称、类型等,还可通过
uiop
库进行更多操作。 uiop:run-program
可用于启动程序,有output
、error-output
、interactive
等参数,可获取输出或字符串,还可直接传递参数或通过列表传递,有:lines
参数增加便利性,可启动异步进程。- 可部分保留 UNIX 工具,如 grep 等,不必完全用 Lisp 替代。
重要细节: - 介绍了 shell 脚本中路径名操作的语法,如获取目录名、文件名、扩展名等。
- 详细说明了
uiop:run-program
在不同参数设置下的使用方式及效果,包括输出到标准输出、交互模式、获取字符串输出等。 - 提到在不同操作系统上的兼容性,如 Windows 风格路径名等。
- 提及这是 Kev Quirk 的 #100DaysToOffload挑战的第 14 篇文章,欢迎通过邮件或 Mastodon 评论。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。