如何在终端上链接 2 个命令
how to chain 2 commands on terminal
我正在尝试在我的 python 脚本中使用子进程来打开 Julia,然后 运行 一个脚本。
在我的机器上 运行,我在终端中输入:
$ julia
$ include(test.jl); func("in.csv", "out.csv")
我如何复制这个过程并链接这两个命令,以便我可以 运行 从子过程中一次调用?
我试过julia; include(test.jl); func("in.csv", "out.csv")
和julia && include(test.jl) && func("in.csv", "out.csv")
但两者都会导致
-bash: syntax error near unexpected token `"test.jl"`
这里的关键是,您并没有真正从 Python 的 subprocess
的角度链接两个命令。只有 一个 命令:julia
。您想要将一个有点复杂的 argument 传递给 Julia,它将执行多个 Julia 表达式。
简而言之,你只想做:
subprocess.run(['julia','-e','include("test.jl"); func("in.csv", "out.csv")'])
这里发生的事情是你只是在执行 一个 子进程,julia
,以 -e
命令行标志启动,它可以运行任何接下来是朱莉娅。您可以选择使用大写的 -E
标志来代替,它将打印出任何 func
(您在那里的最后一个表达式) returns.
不过,值得指出的是,are better ways 让 Julia 和 Python 互操作——尤其是当您需要来回传输数据时。
我正在尝试在我的 python 脚本中使用子进程来打开 Julia,然后 运行 一个脚本。
在我的机器上 运行,我在终端中输入:
$ julia
$ include(test.jl); func("in.csv", "out.csv")
我如何复制这个过程并链接这两个命令,以便我可以 运行 从子过程中一次调用?
我试过julia; include(test.jl); func("in.csv", "out.csv")
和julia && include(test.jl) && func("in.csv", "out.csv")
但两者都会导致
-bash: syntax error near unexpected token `"test.jl"`
这里的关键是,您并没有真正从 Python 的 subprocess
的角度链接两个命令。只有 一个 命令:julia
。您想要将一个有点复杂的 argument 传递给 Julia,它将执行多个 Julia 表达式。
简而言之,你只想做:
subprocess.run(['julia','-e','include("test.jl"); func("in.csv", "out.csv")'])
这里发生的事情是你只是在执行 一个 子进程,julia
,以 -e
命令行标志启动,它可以运行任何接下来是朱莉娅。您可以选择使用大写的 -E
标志来代替,它将打印出任何 func
(您在那里的最后一个表达式) returns.
不过,值得指出的是,are better ways 让 Julia 和 Python 互操作——尤其是当您需要来回传输数据时。