当前位置:   article > 正文

linux 脚本 lang,golang可以编写shell脚本吗

go写linux脚本

3f700d02876791361d6c87cc190c92f8.png

golang可以编写shell脚本吗

golang是可以编写shell脚本,首先可以通过创建一个阅读器去访问键盘,每当按下回车键时,任何的写入都会被存储到输入变量中;然后根据出入的数据来执行逻辑运算;最后将处理结果使用“fmt.Println()”将数据输出即可。

代码示例:package main

import ( "bufio"

"errors"

"fmt"

"os"

"os/exec"

"strings")

func main() {

reader := bufio.NewReader(os.Stdin) for {

fmt.Print("> ") // Read the keyboad input.

input, err := reader.ReadString('\n') if err != nil {

fmt.Fprintln(os.Stderr, err)

} // Handle the execution of the input.

err = execInput(input) if err != nil {

fmt.Fprintln(os.Stderr, err)

}

}

}

// ErrNoPath is returned when 'cd' was called without a second argument.var ErrNoPath = errors.New("path required")

func execInput(input string) error { // Remove the newline character.

input = strings.TrimSuffix(input, "\n") // Split the input separate the command and the arguments.

args := strings.Split(input, " ") // Check for built-in commands.

switch args[0] { case "cd": // 'cd' to home with empty path not yet supported.

if len(args) < 2 { return ErrNoPath

}

err := os.Chdir(args[1]) if err != nil { return err

} // Stop further processing.

return nil

case "exit":

os.Exit(0)

} // Prepare the command to execute.

cmd := exec.Command(args[0], args[1:]...) // Set the correct output device.

cmd.Stderr = os.Stderr

cmd.Stdout = os.Stdout

// Execute the command and save it's output.

err := cmd.Run() if err != nil { return err

} return nil}

推荐教程:《Go教程》

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/781736
推荐阅读
相关标签
  

闽ICP备14008679号