[英]How do I change directory in command line with Clojure?
我正在尋找的是Windows命令行中的這種命令行交互:
C:\temp1>clj some_script.clj
C:\temp2>
some_script.clj包含以下內容:
(cd "c:\\temp2")
所以問題是 - 我如何實現功能cd? 已經嘗試過clojure.java.shell,但它看起來不像我需要的lib。 這可能是一個簡單的問題,問題可能是我不能流利使用Java?!
你不能用Java做到這一點,所以你不能在Clojure中做到這一點。 請參閱使用Java更改當前工作目錄?
clojure可以做到這一點。 您只需要更改名為*sh-dir*
的動態全局變量。 在您的repl中運行以下代碼:
(use '[clojure.java.sh])
(sh "ls")
=> {:exit 0, :out "LICENSE\nREADME.md\nauto_deploy.iml\ndoc\nproject.clj\nresources\nsrc\ntarget\ntest\n", :err ""}
(binding [*sh-dir* "c:/"] (sh "ls"))
{:exit 0,
:out "$360Section
$GetCurrent
$Recycle.Bin
Boot
Documents and Settings
ImbaMallLog.txt
Intel
MSOCache
OEMSY
PerfLogs
Program Files
Program Files (x86)
ProgramData
Python27
Recovery
System Volume Information
Users
Windows
apache-ant-1.9.3
bootmgr
hiberfil.sys
inetpub
pagefile.sys
",
:err ""}
有關詳細信息,請參閱doc。 你可以使用(alter-var-root #'clojure.java.shell/*sh-dir* (constantly "the-cd-path"))
來不斷改變它。 感謝isaac告訴我這件事。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.