2017-11-09 12 views
1

"foo.sh x"를 수행하면 bash에서 x는 $ 1을 호출하여 bash에서 사용될 수 있습니다.SBCL은 명령 행에서 매개 변수를 전달합니다.

lisp에서 "script.lisp x"를 사용하려면 $를 사용하는 대신 x를 $ 1 대신 param으로 사용하십시오.

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

답변

4

이 질문에 대한 답은 특정 리스프 구현에 따라 달라집니다. SBCL의 경우 User Manual에서 찾을 수 있듯이 변수 sb-ext:*posix-argv*에는 명령 행이 들어 있습니다. 그래서 예. (nth 1 sb-ext:*posix-argv*)은 첫 번째 매개 변수를 제공합니다.

+0

이 처리되었습니다. 감사합니다 –

+1

좀 더 휴대용 뭔가에 대한이 답변을 확인하는 데 도움이 될 수 있습니다 https://stackoverflow.com/a/39252130/574033 – Baggers