scheme - Chicken Scheme 是否相当于 Perl 的 $0?

标签 scheme command-line-arguments getmodulefilename chicken-scheme

如何在 Chicken Scheme 中可靠地获取脚本名称?

似乎 -ss 占用了脚本名称,因此除非我使用点斜杠来运行我的脚本,否则它是不可见的。

脚本化main.scm:

#!/usr/bin/env csi -q

(display (command-line-arguments))
(display "\n")
(exit)

痕迹:
$ ./scriptedmain.scm 
(-q ./scriptedmain.scm)
wonko:Desktop andrew$ csi -ss scriptedmain.scm 
()

最佳答案

这是一个迟到的回复,所以可能对原始海报没有用。但是对于可能遇到这个问题的任何其他人,简单的答案是使用参数:

(program-name)

这应该为所有情况返回正确的名称。 Docs here.

关于scheme - Chicken Scheme 是否相当于 Perl 的 $0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5188438/

相关文章:

scheme - 使用 MIT/GNU 方案

c - 定义返回稍后在主程序中使用的字符的函数

perl - ImageMagick命令行选项顺序(以及命令行参数的类别)

go - 创建可执行文件后获取当前文件名

c++ - WinAPI:更改位置时找到自己可执行的目录

c++ - GetModuleFileName 防病毒错误检测 ???获取当前进程路径

Scheme 中的范围 (Lisp)

macros - 如何控制Scheme宏展开的顺序?

list - 循环列表的神秘方案程序

c - Getopt() 在 C 中接受其他选项作为参数