Go语言执行系统命令行命令(转)

 1 package main
 2
 3 import (
 4   "os"
 5   "os/exec"
 6   "fmt"
 7   "flag"
 8   "strings"
 9 )
10
11 func main() {
12   command := flag.String("cmd", "pwd", "Set the command.")
13   args := flag.String("args", "", "Set the args. (separated by spaces)")
14   flag.Usage = func() {
15     fmt.Fprintf(os.Stderr, "Usage: %s [-cmd <command>] [-args <the arguments (separated by spaces)>]\n", os.Args[0])
16     flag.PrintDefaults()
17   }
18   flag.Parse()
19   fmt.Println("Command: ", *command)
20   fmt.Println("Arguments: ", *args)
21   var argArray []string
22   if *args != "" {
23     argArray = strings.Split(*args, " ")
24   } else {
25     argArray = make([]string, 0)
26   }
27   cmd := exec.Command(*command, argArray...)
28   buf, err := cmd.Output()
29   if err != nil {
30       fmt.Fprintf(os.Stderr, "The command failed to perform: %s (Command: %s, Arguments: %s)", err, *command, *args)
31       return
32   }
33    fmt.Fprintf(os.Stdout, "Result: %s", buf)
34 }

来自http://outofmemory.cn/code-snippet/1125/Go-language-execution-xitongmingling-row-command

时间: 2024-08-29 11:17:31

Go语言执行系统命令行命令(转)的相关文章

Java Runtime 执行系统命令行程序

以前写过一篇文章,介绍通过 Java 的 Runtime 类执行操作系统命令行程序:Java调用linux系统shell执行命令.最近项目中又有需要用这个方法,在使用过程中遇到了一些新的问题,感觉以前没有弄清楚,故在此做补充学习记录. 先说明一下这次的需求,在 Java 程序中控制 Hadoop 命令执行 MapReduce 作业,并获取其输出内容.本来没有什么特殊,但由于 MR 执行的是 Kmeans 算法,会产递归产生多个 MR 程序,在捕获输出的时候就只有简单的几句提示,没有 MR 作业的

go语言执行windows下命令行的方法

转自:http://www.jb51.net/article/61727.htm 在golang里执行windows下的命令行,例如在golang里面调用 del d:\a.txt 命令 package main import( "fmt" "os/exec" ) func main(){ c := exec.Command("cmd", "/C", "del", "D:\\a.txt"

mysql命令行,多行命令时如何取消/返回修改前边的命令

mysql命令行中执行多行命令时,如果前边输入的命令发生错误,是无法返回修改的,但是可以通过输入\c来取消前边的输入,但是这时如果前边输入的东西很多,直接取消又很可惜的话,可以通过\p来打印出前边的命令,复制下来去修改,然后输入\c取消来重新输入命令. Example 1 2 3 4 5 6 7 8 9 10 11 12 13 mysql> select 8 from a     -> where 1=1     ->  and 1=0     -> \p #输入\p后,打印出了前

1.5Java语言(JDK中的命令行工具)

1.3.4 配置环境变量path(1)  在dos命令行中敲入javac,出现错误提示.  错误原理:当前执行的程序在当前目录下如果不存在,windows系统会在系统中已有的一个名为path的环境变量指定的目录中查找.如果还没有找到,就出现以上的错误提示.  所以进入到jdk安装路径\bin目录下,执行javac.看到javac参数提示信息. 1.5Java语言(JDK中的命令行工具),布布扣,bubuko.com

perl程序执行时的命令行参数

perl命令行参数默认存储在perl自定义变量@ARGV中.#判断参数个数是否为0,根据上下文环境这里就是==符号,这里@ARGV指的是命令行参数数组元素个数if(@ARGV == 0)# 这里@ARGV指的是命令行参数数组,对数据元素遍历,打印出每个元素,这里的$_为foreach的默认自增变量foreach(@ARGV){ print "$_\n";}# $#ARGV表示@ARGV数组的最后一个元素的下标,该语句同样打印出数组中的每个元素,$ARGV[0]表示@ARGV数组的第0个

Android开发执行adb 命令行命令

1.在Android开发中调用adb命令进行应用安装,将应用安装到 /system/app目录下 /** * install the app in use adb command,this style is silent * */ private void adbInstallTheAPP(){ //adb push core code String command = "cp" + "the android apk file path" + "/syst

Linux 在一个命令行上执行多个命令(转载)

对于单个命令执行我想大多数人都是明了的,也就是在一个命令行上执行一条命令.那对于在一行上执行多个命令怎么办呢,其实也很简单,只需在各命令之间加上特殊命令符号,我们常规使用到的有3个特殊命令符号. 1. [ ; ] 如果被分号(;)所分隔的命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令. [[email protected] etc]# lld ; echo "ok" ; lok -bash: lld: command not found ok -bash: lok: co

[转]Linux 在一个命令行上执行多个命令

原文链接:   http://blog.sina.com.cn/s/blog_6238358c0100rzvd.html 对于单个命令执行我想大多数人都是明了的,也就是在一个命令行上执行一条命令.那对于在一行上执行多个命令怎么办呢,其实也很简单,只需在各命令之间加上特殊命令符号,我们常规使用到的有3个特殊命令符号. 1. [ ; ] 如果被分号(;)所分隔的命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令. [[email protected] etc]# lld ; echo "o

Linux 在一个命令行上执行多个命令

1.  ;被分号(;)所分隔的命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令. # lld ; echo "ok" ; lok-bash: lld: command not foundok-bash: lok: command not found 2.  && 命令被 && 所分隔,那么命令也会一直执行下去,但是中间有错误的命令存在就不会执行后面的命令,没错就直行至完为止. # echo "ok" &&