0
Julia不會像其他語言那樣使用shell作爲running external programs。我如何在Julia中做cd temp_dir && some_cmd
的等價物?據我所知cd()
改變全局工作目錄,這是一個問題,如果我並行執行代碼塊。如何更改在Julia中執行的命令的CWD?
Julia不會像其他語言那樣使用shell作爲running external programs。我如何在Julia中做cd temp_dir && some_cmd
的等價物?據我所知cd()
改變全局工作目錄,這是一個問題,如果我並行執行代碼塊。如何更改在Julia中執行的命令的CWD?
望着文檔字符串爲cd
功能:
help?> cd
search: cd Cdouble gcd gcdx secd vecdot asecd cld Cmd codeunit CodeInfo
cd(dir::AbstractString=homedir())
Set the current working directory.
cd(f::Function, dir::AbstractString=homedir())
Temporarily changes the current working directory and applies function f
before returning.
我們可以用第二種方法cd
到一個目錄,運行一個命令,然後繼續執行。
julia> cd(readdir, "temp_dir/")
2-element Array{String,1}:
"code.jl"
"file.txt"
julia> cd("temp_dir/") do
mkdir("subdir")
end
julia> cd(readdir, "temp_dir/")
3-element Array{String,1}:
"code.jl"
"file.txt"
"subdir"
我們可以通過任何函數作爲第一個參數,包括自定義的(使用do
塊簡明寫入)。
當我第一次嘗試cd(運行(\'some_cmd \'),「temp_dir /」)'它不起作用。現在我看到你需要一個在CWD改變後被調用的函數引用。 – m33lky
@ m33lky啊,是的 - 你必須傳遞一個函數,而'run(\'some_cmd \')'返回一個實際的值。你可以使用匿名函數而不是'do'模塊來實現你的結果! cd(() - > run(\'some_cmd \'),「temp_dir /」)' –