write a simple shell language in go

main.go
package main

import (
	"bufio"
	"fmt"
	"os"
	"os/exec"
	"strings"
)

func main() {
	reader := bufio.NewReader(os.Stdin)

	for {
		fmt.Print("🐚 > ")
		input, _ := reader.ReadString('\n')
		input = strings.TrimSuffix(input, "\n")

		cmd := exec.Command("sh", "-c", input)
		cmd.Stdin = os.Stdin
		cmd.Stdout = os.Stdout
		cmd.Stderr = os.Stderr

		if err := cmd.Run(); err != nil {
			fmt.Println(err)
		}
	}
}
411 chars
29 lines

related categories

gistlibby LogSnag