用于 shell 脚本编写的 Common Lisp

主要观点:探讨用 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可用于启动程序,有outputerror-outputinteractive等参数,可获取输出或字符串,还可直接传递参数或通过列表传递,有:lines参数增加便利性,可启动异步进程。
  • 可部分保留 UNIX 工具,如 grep 等,不必完全用 Lisp 替代。
    重要细节
  • 介绍了 shell 脚本中路径名操作的语法,如获取目录名、文件名、扩展名等。
  • 详细说明了uiop:run-program在不同参数设置下的使用方式及效果,包括输出到标准输出、交互模式、获取字符串输出等。
  • 提到在不同操作系统上的兼容性,如 Windows 风格路径名等。
  • 提及这是 Kev Quirk 的 #100DaysToOffload挑战的第 14 篇文章,欢迎通过邮件或 Mastodon 评论。
阅读 11
0 条评论