cmd.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. #pragma once
  2. /**
  3. * @brief shell内建命令结构体
  4. *
  5. */
  6. struct built_in_cmd_t
  7. {
  8. char *name;
  9. int (*func)(int argc, char **argv);
  10. };
  11. extern struct built_in_cmd_t shell_cmds[];
  12. /**
  13. * @brief 寻找对应的主命令编号
  14. *
  15. * @param main_cmd 主命令
  16. * @return int 主命令编号
  17. */
  18. int shell_find_cmd(char *main_cmd);
  19. /**
  20. * @brief 运行shell内建的命令
  21. *
  22. * @param index 主命令编号
  23. * @param argc 参数数量
  24. * @param argv 参数列表
  25. */
  26. void shell_run_built_in_command(int index, int argc, char **argv);
  27. /**
  28. * @brief cd命令:进入文件夹
  29. *
  30. * @param argc
  31. * @param argv
  32. * @return int
  33. */
  34. int shell_cmd_cd(int argc, char **argv);
  35. /**
  36. * @brief 查看文件夹下的文件列表
  37. *
  38. * @param argc
  39. * @param argv
  40. * @return int
  41. */
  42. int shell_cmd_ls(int argc, char **argv);
  43. /**
  44. * @brief 显示当前工作目录的命令
  45. *
  46. * @param argc
  47. * @param argv
  48. * @return int
  49. */
  50. int shell_cmd_pwd(int argc, char **argv);
  51. /**
  52. * @brief 查看文件内容的命令
  53. *
  54. * @param argc
  55. * @param argv
  56. * @return int
  57. */
  58. int shell_cmd_cat(int argc, char **argv);
  59. /**
  60. * @brief 创建空文件的命令
  61. *
  62. * @param argc
  63. * @param argv
  64. * @return int
  65. */
  66. int shell_cmd_touch(int argc, char **argv);
  67. /**
  68. * @brief 删除命令
  69. *
  70. * @param argc
  71. * @param argv
  72. * @return int
  73. */
  74. int shell_cmd_rm(int argc, char **argv);
  75. /**
  76. * @brief 创建文件夹的命令
  77. *
  78. * @param argc
  79. * @param argv
  80. * @return int
  81. */
  82. int shell_cmd_mkdir(int argc, char **argv);
  83. /**
  84. * @brief 删除文件夹的命令
  85. *
  86. * @param argc
  87. * @param argv
  88. * @return int
  89. */
  90. int shell_cmd_rmdir(int argc, char **argv);
  91. /**
  92. * @brief 执行新的程序的命令
  93. *
  94. * @param argc
  95. * @param argv
  96. * @return int
  97. */
  98. int shell_cmd_exec(int argc, char **argv);
  99. /**
  100. * @brief 重启命令
  101. *
  102. * @param argc
  103. * @param argv
  104. * @return int
  105. */
  106. int shell_cmd_reboot(int argc, char **argv);