如何将临时文件作为命令行参数传递

时间:2019-03-09 01:57:05

标签: go temporary-files

我正在尝试使用临时文件,以便可以将临时文件作为参数传递给exec命令。

我声明要用作的命令

CLI_CMD := "/home/go/src/hello/abc.sh"

xmlFile, err := ioutil.TempFile("", hostIP)
command := CLI_CMD + " " + xmlFile.Name()

我终于以如下方式运行命令

cmd := exec.Command(command)
stdout, err := cmd.Output()

要确认abc.sh是否存在

[prompt] ls /home/go/src/hello/abc.sh
/home/go/src/hello/abc.sh

我还要确认临时文件是否存在

[prompt] ls /tmp/10.166.30.47.xml187906126
/tmp/10.166.30.47.xml187906126

我可以使用ls命令在此处看到这两个文件。我不明白为什么我得到一个错误,但找不到这些文件中的任何一个。还有在这里找不到什么文件,.sh文件或临时文件

2019/03/08 17:50:31 fork/exec /home/go/src/hello/abc.sh /tmp/10.166.30.47.xml187906126: no such file or directory

我试图总结代码以使其易于理解。

1 个答案:

答案 0 :(得分:2)

像这样更改执行部分。

cmd := exec.Command("bash","-c",command)