Golang中如何解决从exec.Command输出获取文件名后无法使用ServeFile的问题
Golang中如何解决从exec.Command输出获取文件名后无法使用ServeFile的问题 我有一个shell脚本,它会创建一个随机文件并输出该文件的位置。
TEMP=$RANDOM.txt
touch $TEMP
echo $(pwd)/$TEMP
在同一目录下,有一个Go程序用于提供生成的文件供下载。serveFile从exec.Command("bash", "foo.sh").Output()获取文件名(foo是脚本的名称)。问题是服务器返回的是404页面未找到而不是文件。为什么会这样?
package main
import (
"log"
"net/http"
"os/exec"
)
func handler(w http.ResponseWriter, r *http.Request) {
out, err := exec.Command("bash", "foo.sh").Output()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
log.Println(err)
return
}
log.Println(string(out))
http.ServeFile(w, r, string(out))
}
func main() {
http.HandleFunc("/random", handler)
http.ListenAndServe(":8080", nil)
}
更多关于Golang中如何解决从exec.Command输出获取文件名后无法使用ServeFile的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
2 回复
我明白了。echo 会在字符串末尾添加 \n。
func main() {
fmt.Println("hello world")
}
更多关于Golang中如何解决从exec.Command输出获取文件名后无法使用ServeFile的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


