SBCL从命令行传递param

时间:2017-11-09 12:09:27

标签: unix common-lisp sbcl

在bash中如果我执行“foo.sh x”,则可以通过调用$ 1在bash中使用x。

如果我想对lisp做同样的事情,“script.lisp x”我可以使用/调用什么来获取x作为参数而不是$ 1.

实施例

#!/usr/local/bin/sbcl --script
(if (eql intp $1)
   (+ $1 $1)
   (format t "~&not a valid int")))

1 个答案:

答案 0 :(得分:5)

这个问题的答案取决于您的特定Lisp实现。对于SBCL,您可以在User Manual中找到,变量sb-ext:*posix-argv*包含命令行。所以,例如。 (nth 1 sb-ext:*posix-argv*)会为您提供第一个参数。