command_helper.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package command
  2. import (
  3. "bufio"
  4. "fmt"
  5. "io/ioutil"
  6. "os/exec"
  7. )
  8. func OnlyExec(cmdStr string) {
  9. cmd := exec.Command("/bin/bash", "-c", cmdStr)
  10. stdout, err := cmd.StdoutPipe()
  11. if err != nil {
  12. return
  13. }
  14. defer stdout.Close()
  15. if err := cmd.Start(); err != nil {
  16. return
  17. }
  18. cmd.Wait()
  19. return
  20. }
  21. func ExecResultStrArray(cmdStr string) []string {
  22. cmd := exec.Command("/bin/bash", "-c", cmdStr)
  23. stdout, err := cmd.StdoutPipe()
  24. if err != nil {
  25. fmt.Println(err)
  26. return nil
  27. }
  28. defer stdout.Close()
  29. if err = cmd.Start(); err != nil {
  30. fmt.Println(err)
  31. return nil
  32. }
  33. //str, err := ioutil.ReadAll(stdout)
  34. var networklist = []string{}
  35. outputBuf := bufio.NewReader(stdout)
  36. for {
  37. output, _, err := outputBuf.ReadLine()
  38. if err != nil {
  39. if err.Error() != "EOF" {
  40. fmt.Printf("Error :%s\n", err)
  41. }
  42. break
  43. }
  44. networklist = append(networklist, string(output))
  45. }
  46. cmd.Wait()
  47. return networklist
  48. }
  49. func ExecResultStr(cmdStr string) string {
  50. cmd := exec.Command("/bin/bash", "-c", cmdStr)
  51. stdout, err := cmd.StdoutPipe()
  52. if err != nil {
  53. fmt.Println(err)
  54. return ""
  55. }
  56. defer stdout.Close()
  57. if err := cmd.Start(); err != nil {
  58. fmt.Println(err)
  59. return ""
  60. }
  61. str, err := ioutil.ReadAll(stdout)
  62. cmd.Wait()
  63. if err != nil {
  64. fmt.Println(err)
  65. return ""
  66. }
  67. return string(str)
  68. }
  69. //执行 lsblk 命令
  70. func ExecLSBLK() []byte {
  71. output, err := exec.Command("lsblk", "-O", "-J", "-b").Output()
  72. if err != nil {
  73. fmt.Println("lsblk", err)
  74. return nil
  75. }
  76. return output
  77. }
  78. //执行 lsblk 命令
  79. func ExecLSBLKByPath(path string) []byte {
  80. output, err := exec.Command("lsblk", path, "-O", "-J", "-b").Output()
  81. if err != nil {
  82. return nil
  83. }
  84. return output
  85. }