运行应用程序
ttinyShell 不仅可以执行内建的命令,而且还能执行用户应用程序。执行应用程序的方法与执行内建命令相同。
命令检测顺序
当用户在 Shell 界面下键入命令名称与参数点击回车后,ttinyShell 将首先检测此命令是否为用户应用程序,如果是则优先执行用户应用程序,如果不是则再检测命令是否为内建命令,如果均不是则 ttinyShell 打印错误信息。ttinyShell 命令检测顺序如下所示:
- 检测命令是否为一个文件路径,如果文件存在,则执行指定的应用程序。
- 检测 PATH 环境变量指定的路径,如果文件存在,则执行指定的应用程序。
- 检测命令是否为一个内建命令,如果是内建命令,则执行内建命令。
执行命令方式
ttinyShell 执行内建命令或应用程序时有两种方式:
- 同步方式 :ttinyShell 执行内建命令时,命令代码默认在 ttinyShell 线程上下文中,执行应用程序时,ttinyShell 会创建一个进程并在此进程中装入应用程序代码,同时 ttinyShell 自行阻塞并等待进程结束后恢复执行。
- 异步方式 :当用户在键入的命令之后加入 & 符号,ttinyShell 将以异步方式执行命令,当 ttinyShell 执行内建命令时,会创建一个内核线程执行命令代码,执行应用程序时 ttinyShell 会创建一个进程并在此进程中装入应用程序代码,与同步方式不同的是,ttinyShell 并不等待命令执行完毕而是立即准备接收用户的下一条命令。