如何在Chicken Scheme中可靠地获取脚本名称?
似乎-ss会占用脚本名称,因此除非我使用点斜杠来运行我的脚本,否则它不可见。
scriptedmain.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
()
答案 0 :(得分:6)
答案 1 :(得分:1)
(argv)
应该做的工作。例如:
#!/usr/local/bin/csi -script
(display (argv)) (newline) (exit)
打印(/usr/local/bin/csi -script ./test.scm)
答案 2 :(得分:1)
scriptedmain.scm将运行(main)并打印程序名称:
从解释器运行:
csi -ss scriptedmain.scm
使用shebangs从解释器运行:
./scriptedmain.scm
编译:
csc -o scriptedmain scriptedmain.scm
./scriptedmain
已添加到GitHub。
#!/bin/sh
#|
exec csi -ss $0 ${1+"$@"}
exit
|#
(define (main)
(display (format "Program: ~a\n" (program-name)))
(exit))
(if (not (equal? (program-name) "csi"))
(main))