登录
首页 >  Golang >  Go问答

Golang exec命令chmod返回错误

来源:Golang技术栈

时间:2023-04-15 07:25:27 305浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《Golang exec命令chmod返回错误》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

在这里熟悉 Golang,我正在尝试执行 shell 命令,我需要对任何 .pem 文件进行 chmod,所以我决定使用通配符 *

func main() {

    cmd := exec.Command( "chmod", "400", "*.pem" )

    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stdout

    if err := cmd.Run(); err != nil {
        fmt.Println( "Error:", err )
    }

我在执行时不断收到此错误:

chmod: cannot access '*.pem': No such file or directory
Error: exit status 1

正确答案

与来自 C 和其他语言的“系统”库调用不同,os/exec 包有意不调用系统 shell,也不扩展任何 glob 模式或处理通常由 shell 完成的其他扩展、管道或重定向。

所以这里,*就不展开了。作为一种解决方法,您应该使用 next 使其工作:

cmd := exec.Command("sh", "-c", "chmod 400 *.pem" )

到这里,我们也就讲完了《Golang exec命令chmod返回错误》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>