"지령선 조개?? 누구나 할 수 있어요."
제약조건
최소한의 미니 골격 골격의 골격 이미지를 필요로 하는 청사진
while ( true ){
text = readline()// 一行入力:最悪 gets でもよい
system(text) /// 一行実行:最悪 CMD.EXE とかに丸投げしてもよい
}
처음에는'최악'만 하면 돼요.이번 정책의 방향성에 관한 방침
처음에는 상당한 gets를 하려고 했는데 결과적으로 bufio가 됐어요.뉴스캐너 같은 건 오히려 귀찮아
달팽이
package main
import (
"fmt"
"os"
"os/exec"
"strings"
"github.com/mattn/go-tty"
"github.com/mattn/go-tty/ttyutil"
)
func mains() error {
fmt.Println("Tiny Shell. Type Ctrl-D to quit.")
tty1, err := tty.Open()
if err != nil {
return err
}
defer tty1.Close()
for {
clean, err := tty1.Raw()
if err != nil {
return err
}
fmt.Println("Ready")
text, err := ttyutil.ReadLine(tty1)
clean()
if err != nil {
return err
}
fields := strings.Fields(text)
if len(fields) <= 0 {
continue
}
cmd := exec.Command(fields[0], fields[1:]...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
cmd.Run()
}
}
func main() {
if err := mains(); err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(1)
}
}
설명해주세요!
main()
에서 호출mains()error
은 오류 처리를 간소화하는 제 스타일이기 때문에 너무 신경 쓰지 마세요.TO BE CONTINUED...?
Reference
이 문제에 관하여("지령선 조개?? 누구나 할 수 있어요."), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/zetamatta/articles/d7b76ff6535d7d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)