Ubuntu 如何使用shebang符号运行guile Scheme脚本?

Ubuntu 如何使用shebang符号运行guile Scheme脚本?,ubuntu,terminal,scheme,guile,Ubuntu,Terminal,Scheme,Guile,我用shebang符号创建了一个guile方案脚本 代码如下: #!/usr/local/bin/guile \ -e main -s !# (define (fact-iter product counter max-count) (if (> counter max-count) product (fact-iter (* counter product) (+ counter 1) max-count))) (define (factori

我用shebang符号创建了一个guile方案脚本

代码如下:

#!/usr/local/bin/guile \
-e main -s
!#
(define (fact-iter product counter max-count)
    (if (> counter max-count)
         product
         (fact-iter (* counter product) (+ counter 1) max-count)))
(define (factorial n)
    (fact-iter 1 1 n))
(define (main args) 
    (factorial args)
)
文件名:factScheme.guile

我尝试直接在终端“factScheme.guile”中运行它,得到了bash factScheme.guile:未找到命令

如果我使用“/factScheme.guile”,我的许可被拒绝

如果有人能告诉我如何在ubuntu终端上一步一步地运行guile scheme脚本,我将不胜感激


我在代码中提到的目录中有guile。I

您需要使您的
factScheme.guile
文件可执行:

chmod +x factScheme.guile
您的程序还有其他问题:您需要将第一个(非程序名)参数转换为数字,并且需要显示结果。因此:

(display (factorial (string->number (cadr args))))

p.S.Guile程序通常使用
.scm
文件后缀。

谢谢。它只做了一点小小的改变。我不得不将car改为(list ref args 1)或(car(cdr args)),因为car返回的第一个参数是文件名。我编辑了它并添加了注释,使stackoverflow接受了答案。不过非常感谢。