欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

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

发布时间:2025/5/22 linux 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 linux 脚本 lang,golang可以编写shell脚本吗 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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教程》

总结

以上是生活随笔为你收集整理的linux 脚本 lang,golang可以编写shell脚本吗的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。