bug:golang通过exec.Command()执行命令报错

这篇具有很好参考价值的文章主要介绍了bug:golang通过exec.Command()执行命令报错。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

bug:golang通过exec.Command()执行命令报错

1 通过exec指定zip命令报错

需求描述:压缩某个目录下的所有文件

  • 在执行过程中,发现zip命令可行,但是 /usr/bin/zip test.zip *发现无法压缩成功,程序直接报错退出,后来排查返现是golang中的exec.Command()不支持*通配符,但是我们可以通过下面的方式实现效果。

*替换为所有的文件名及目录:文章来源地址https://www.toymoban.com/news/detail-544667.html

package main

import (
	"fmt"
	"os/exec"
	"path/filepath"
)

func main() {
	zipName := "9999.zip"
	command := []string{
		"-r",
		zipName,
	}
	tmp, err := filepath.Glob("*")
	if len(tmp) == 0 {
		fmt.Println("No matching files found")
	}
	fmt.Println("* tmp=", tmp)
	command = append(command, tmp...)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println("args=", command)

	cmd := exec.Command("/usr/bin/zip", command...)
	fmt.Println("compression cmd=", cmd)
	err = cmd.Run()
	if err != nil {
		fmt.Println("compression dir err=", err)
		return
	}

}

到了这里,关于bug:golang通过exec.Command()执行命令报错的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mac 下载 nvm 后执行nvm -v 命令报错 nvm: command not found

    1、问题:Mac 使用命令下载nvm 成功后执行 nvm -v 查看,报错:nvm command not found 2、原因:可能是系统更新后,默认的 shell 是 zsh,所以找不到配置文件 3、解决:可添加编辑 .bash_profile 和 .zshrc 文件 打开终端: 4、如果重新打开终端执行 nvm -v 再次报错nvm command not found 原因是可

    2024年01月16日
    浏览(36)
  • GoLang:sql.Exec()报错

    Sorry, can not exec into mysql: Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ... sql.Exec 在大多数情况下只能执行单条SQL语句。如果您的SQL脚本包含多条语句,您需要将它们分割并逐一执行。这通常涉及将整个SQ

    2024年01月24日
    浏览(28)
  • docker exec :容器中执行命令

    docker exec 命令用于在正在运行的 Docker 容器中运行指定的命令。 使用 docker exec 命令的格式如下: 其中, OPTIONS 可以省略,常用的选项如下: -i :保持标准输入打开,使得可以与容器交互。 -t :分配一个伪终端,使得可以与容器交互。 CONTAINER 是要操作的容器的名称或 ID。

    2024年04月09日
    浏览(29)
  • qt:通过命令压缩zip文件

    zip -j 的-j表示不含路径 stat 判断文件大小

    2024年02月16日
    浏览(30)
  • 《golang设计模式》第三部分·行为型模式-02-命令模式(Command)

    命令模式(Command)将类的业务行为以对象的方式封装,以便实现行为的参数化、撤销或重做等需求。 非命令模式的困惑: 类的行为在运行时是以实例方法的形式调用的,当方法执行完毕并返回后,方法栈将会消除;方法的运行状态(主要指局部变量)保存在栈帧中,它会随

    2024年02月07日
    浏览(26)
  • Bug:mac上运行go run main.go 报错,fork/exec /var/fold/T/go-build269/b001/ex

    今天通过goland执行go run main.go运行我本地编写好的go代码时,发现报错fork/exec / xxx 方法一: 因为当前go的build环境不对,比如:我是mac系统,但是之前go中的GOOS配置的是linux,因此导致报错 方法二: 可能是因为重装或者更新go版本后,并没有在env里更新 /var/folders/ty/q11880gn5797

    2024年02月10日
    浏览(31)
  • Jenkins执行shell脚本报错:docker: command not found

    搭建完Jenkins之后,着手开始创建构建服务的任务,点击构建,但是一直构建失败,控制台日志一直报错 截图 尝试了了很多解决办法,比如在shell脚本前加上两行代码 但对于我的情况还是不起作用。 最后才发现,是我的Jenkins没有配置全局的PATH环境变量,配置方法如下 1、首

    2024年02月13日
    浏览(33)
  • Linux执行jps命令时报错:-bash: jps: command not found

    在Linux系统中执行jps命令时,如果出现\\\"-bash: jps: command not found\\\"的错误提示,通常是因为缺少Java Development Kit (JDK)或JRE的安装或配置问题。jps是JDK提供的一个命令行工具,用于查看Java进程信息。下面将详细介绍如何解决这个问题。 以下是解决方案的步骤: 步骤1: 检查Java安装

    2024年02月05日
    浏览(32)
  • Jenkins构建后通过SSH发包报错exception message [Exec exit status not zero. Status [127]]解决方法

    问题描述  jenkins配置好项目后,使用Publish over SSH插件推送到服务器指定目录的时候报错。 Console Output报错信息:ERROR: Exception when publishing, exception message [Exec exit status not zero. Status 原因分析 [127]代表的意思是没有找到执行文件的目录,那么把执行文件配对了就能解决。 解决办

    2024年02月06日
    浏览(30)
  • 使用ssh通过jenkins部署发包报错exception message [Exec exit status not zero. Status [127]]解决方法

    问题 : 在jenkins上打的jar包部署到远程服务器上,会看到连接成功后仍然报错127,   解决方案 : [127]代表的意思是没有找到执行文件的目录,那么把执行文件配对了就能解决 1. 检查jenkins系统配置的sshserver路径Remote Directory是否正确 2. 检查构建步骤中Send files or execute commands

    2024年02月16日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包