2017-04-11 55 views

回答

1

望着文檔字符串爲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塊簡明寫入)。

+1

當我第一次嘗試cd(運行(\'some_cmd \'),「temp_dir /」)'它不起作用。現在我看到你需要一個在CWD改變後被調用的函數引用。 – m33lky

+1

@ m33lky啊,是的 - 你必須傳遞一個函數,而'run(\'some_cmd \')'返回一個實際的值。你可以使用匿名函數而不是'do'模塊來實現你的結果! cd(() - > run(\'some_cmd \'),「temp_dir /」)' –