SBCL 从命令行传递参数
SBCL pass param from command line
在 bash 中,如果我这样做 "foo.sh x",则可以通过调用 $1 在 bash 中使用 x。
如果我想用 lisp 做同样的事情,"script.lisp x" 我可以怎样 use/call 将 x 作为参数而不是 $1。
示例
#!/usr/local/bin/sbcl --script
(if (eql intp )
(+ )
(format t "~¬ a valid int")))
这个问题的答案取决于您的特定 Lisp 实现。对于 SBCL,您可以在 User Manual 中找到,变量 sb-ext:*posix-argv*
包含命令行。所以例如。 (nth 1 sb-ext:*posix-argv*)
会给你第一个参数。
在 bash 中,如果我这样做 "foo.sh x",则可以通过调用 $1 在 bash 中使用 x。
如果我想用 lisp 做同样的事情,"script.lisp x" 我可以怎样 use/call 将 x 作为参数而不是 $1。
示例
#!/usr/local/bin/sbcl --script
(if (eql intp )
(+ )
(format t "~¬ a valid int")))
这个问题的答案取决于您的特定 Lisp 实现。对于 SBCL,您可以在 User Manual 中找到,变量 sb-ext:*posix-argv*
包含命令行。所以例如。 (nth 1 sb-ext:*posix-argv*)
会给你第一个参数。