我试图弄清楚如何通过配置文件来操纵guile脚本的变量,而不必编辑源代码。
有一个名为 test.cfg 的文件,其中包含以下内容:
name = Gareth
my-num = 123
rand-string = Hello, world!
这是我到目前为止拥有的名为 read-file 的脚本:
#!/usr/bin/guile \
-e main -s
!#
(use-modules (ice-9 textual-ports))
(define (read-file file)
(call-with-input-file file
(lambda (port)
(get-string-all port))))
(define get-name
(call-with-input-file "test.cfg"
;; Code to get value of `name` from test.cfg here.
))
(define (main args)
(display (read-file "test.cfg"))
(display (get-name))
(newline))
最终结果是,在 test.cfg 中更改name
时,读取文件中的get-name
应该返回新值。