如何解决在Clojure中建立类似于`cat <operation.txt`的cli
我正在Clojure上构建一个CLI,该CLI将收到一个名为operation.txt的文件,该文件的每一行都会包含我要处理的操作。假设:
clojure -M -m project.process < operations.txt
现在,我有一个带有deps的简单回购协议,当我不添加<
运算符时,我可以接收文件名作为参数,但是一旦添加了该运算符,则参数返回nil。
我可以为此做些什么吗?
除了使用https://github.com/seancorfield/clj-new命令创建的内容外,我无需在项目中添加太多内容。
这是主文件上的代码:
(defn -main
"I don't do a whole lot ... yet."
[& args]
(println args))
我要在此函数的参数中接收的含义与使用此函数时相似:
cat < operations.txt
解决方法
如果在命令行上使用<
,则'operations.txt'的内容将不作为-main
的参数提供,而作为stdin提供,您可以通过{{ 1}}。
您可以使用*in*
来读取一行,或将其包装在read-line
中并用BufferedReader
进行处理。
doseq
在this question上查看更多详细信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。