cmd_jobs.go 762 B

1234567891011121314151617181920212223242526272829
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "strconv"
  6. )
  7. // 显示job列表
  8. func cmd_jobs(fields []string, stdin *os.File, stdout *os.File, stderr *os.File) {
  9. if len(fields) == 1 { // 如果没有参数
  10. for i, job := range jobs { // 则输出所有job
  11. fmt.Fprintf(stdout, "[%d] %d %s\t%s\n", i, job.cmd.Process.Pid, job.state, job.work)
  12. }
  13. } else {
  14. for _, jid := range fields[1:] { // 遍历参数
  15. id, err := strconv.Atoi(jid[1:]) // 字符串转数字
  16. if err != nil {
  17. panic("jobs: job not found: " + jid)
  18. }
  19. _, ok := jobs[id] // 是否有指定编号的job
  20. if !ok {
  21. panic("jobs: %" + jid[1:] + ": no such job")
  22. }
  23. fmt.Fprintf(stdout, "[%d] %d %s\t%s\n", id, jobs[id].cmd.Process.Pid, jobs[id].state, jobs[id].work)
  24. }
  25. }
  26. }