在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 "~¬ a valid int")))
答案 0 :(得分:5)
这个问题的答案取决于您的特定Lisp实现。对于SBCL,您可以在User Manual中找到,变量sb-ext:*posix-argv*
包含命令行。所以,例如。 (nth 1 sb-ext:*posix-argv*)
会为您提供第一个参数。