⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ash.c

📁 shell-HHARM9200.rar 华恒 AT91rm9200 中Busybox shell的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	/*   2  -128 0x80 */ CWORD_CWORD_CWORD_CWORD,	/*   3  -127 CTLESC       */ CCTL_CCTL_CCTL_CCTL,	/*   4  -126 CTLVAR       */ CCTL_CCTL_CCTL_CCTL,	/*   5  -125 CTLENDVAR    */ CCTL_CCTL_CCTL_CCTL,	/*   6  -124 CTLBACKQ     */ CCTL_CCTL_CCTL_CCTL,	/*   7  -123 CTLQUOTE     */ CCTL_CCTL_CCTL_CCTL,	/*   8  -122 CTLARI       */ CCTL_CCTL_CCTL_CCTL,	/*   9  -121 CTLENDARI    */ CCTL_CCTL_CCTL_CCTL,	/*  10  -120 CTLQUOTEMARK */ CCTL_CCTL_CCTL_CCTL,	/*  11  -119      */ CWORD_CWORD_CWORD_CWORD,	/*  12  -118      */ CWORD_CWORD_CWORD_CWORD,	/*  13  -117      */ CWORD_CWORD_CWORD_CWORD,	/*  14  -116      */ CWORD_CWORD_CWORD_CWORD,	/*  15  -115      */ CWORD_CWORD_CWORD_CWORD,	/*  16  -114      */ CWORD_CWORD_CWORD_CWORD,	/*  17  -113      */ CWORD_CWORD_CWORD_CWORD,	/*  18  -112      */ CWORD_CWORD_CWORD_CWORD,	/*  19  -111      */ CWORD_CWORD_CWORD_CWORD,	/*  20  -110      */ CWORD_CWORD_CWORD_CWORD,	/*  21  -109      */ CWORD_CWORD_CWORD_CWORD,	/*  22  -108      */ CWORD_CWORD_CWORD_CWORD,	/*  23  -107      */ CWORD_CWORD_CWORD_CWORD,	/*  24  -106      */ CWORD_CWORD_CWORD_CWORD,	/*  25  -105      */ CWORD_CWORD_CWORD_CWORD,	/*  26  -104      */ CWORD_CWORD_CWORD_CWORD,	/*  27  -103      */ CWORD_CWORD_CWORD_CWORD,	/*  28  -102      */ CWORD_CWORD_CWORD_CWORD,	/*  29  -101      */ CWORD_CWORD_CWORD_CWORD,	/*  30  -100      */ CWORD_CWORD_CWORD_CWORD,	/*  31   -99      */ CWORD_CWORD_CWORD_CWORD,	/*  32   -98      */ CWORD_CWORD_CWORD_CWORD,	/*  33   -97      */ CWORD_CWORD_CWORD_CWORD,	/*  34   -96      */ CWORD_CWORD_CWORD_CWORD,	/*  35   -95      */ CWORD_CWORD_CWORD_CWORD,	/*  36   -94      */ CWORD_CWORD_CWORD_CWORD,	/*  37   -93      */ CWORD_CWORD_CWORD_CWORD,	/*  38   -92      */ CWORD_CWORD_CWORD_CWORD,	/*  39   -91      */ CWORD_CWORD_CWORD_CWORD,	/*  40   -90      */ CWORD_CWORD_CWORD_CWORD,	/*  41   -89      */ CWORD_CWORD_CWORD_CWORD,	/*  42   -88      */ CWORD_CWORD_CWORD_CWORD,	/*  43   -87      */ CWORD_CWORD_CWORD_CWORD,	/*  44   -86      */ CWORD_CWORD_CWORD_CWORD,	/*  45   -85      */ CWORD_CWORD_CWORD_CWORD,	/*  46   -84      */ CWORD_CWORD_CWORD_CWORD,	/*  47   -83      */ CWORD_CWORD_CWORD_CWORD,	/*  48   -82      */ CWORD_CWORD_CWORD_CWORD,	/*  49   -81      */ CWORD_CWORD_CWORD_CWORD,	/*  50   -80      */ CWORD_CWORD_CWORD_CWORD,	/*  51   -79      */ CWORD_CWORD_CWORD_CWORD,	/*  52   -78      */ CWORD_CWORD_CWORD_CWORD,	/*  53   -77      */ CWORD_CWORD_CWORD_CWORD,	/*  54   -76      */ CWORD_CWORD_CWORD_CWORD,	/*  55   -75      */ CWORD_CWORD_CWORD_CWORD,	/*  56   -74      */ CWORD_CWORD_CWORD_CWORD,	/*  57   -73      */ CWORD_CWORD_CWORD_CWORD,	/*  58   -72      */ CWORD_CWORD_CWORD_CWORD,	/*  59   -71      */ CWORD_CWORD_CWORD_CWORD,	/*  60   -70      */ CWORD_CWORD_CWORD_CWORD,	/*  61   -69      */ CWORD_CWORD_CWORD_CWORD,	/*  62   -68      */ CWORD_CWORD_CWORD_CWORD,	/*  63   -67      */ CWORD_CWORD_CWORD_CWORD,	/*  64   -66      */ CWORD_CWORD_CWORD_CWORD,	/*  65   -65      */ CWORD_CWORD_CWORD_CWORD,	/*  66   -64      */ CWORD_CWORD_CWORD_CWORD,	/*  67   -63      */ CWORD_CWORD_CWORD_CWORD,	/*  68   -62      */ CWORD_CWORD_CWORD_CWORD,	/*  69   -61      */ CWORD_CWORD_CWORD_CWORD,	/*  70   -60      */ CWORD_CWORD_CWORD_CWORD,	/*  71   -59      */ CWORD_CWORD_CWORD_CWORD,	/*  72   -58      */ CWORD_CWORD_CWORD_CWORD,	/*  73   -57      */ CWORD_CWORD_CWORD_CWORD,	/*  74   -56      */ CWORD_CWORD_CWORD_CWORD,	/*  75   -55      */ CWORD_CWORD_CWORD_CWORD,	/*  76   -54      */ CWORD_CWORD_CWORD_CWORD,	/*  77   -53      */ CWORD_CWORD_CWORD_CWORD,	/*  78   -52      */ CWORD_CWORD_CWORD_CWORD,	/*  79   -51      */ CWORD_CWORD_CWORD_CWORD,	/*  80   -50      */ CWORD_CWORD_CWORD_CWORD,	/*  81   -49      */ CWORD_CWORD_CWORD_CWORD,	/*  82   -48      */ CWORD_CWORD_CWORD_CWORD,	/*  83   -47      */ CWORD_CWORD_CWORD_CWORD,	/*  84   -46      */ CWORD_CWORD_CWORD_CWORD,	/*  85   -45      */ CWORD_CWORD_CWORD_CWORD,	/*  86   -44      */ CWORD_CWORD_CWORD_CWORD,	/*  87   -43      */ CWORD_CWORD_CWORD_CWORD,	/*  88   -42      */ CWORD_CWORD_CWORD_CWORD,	/*  89   -41      */ CWORD_CWORD_CWORD_CWORD,	/*  90   -40      */ CWORD_CWORD_CWORD_CWORD,	/*  91   -39      */ CWORD_CWORD_CWORD_CWORD,	/*  92   -38      */ CWORD_CWORD_CWORD_CWORD,	/*  93   -37      */ CWORD_CWORD_CWORD_CWORD,	/*  94   -36      */ CWORD_CWORD_CWORD_CWORD,	/*  95   -35      */ CWORD_CWORD_CWORD_CWORD,	/*  96   -34      */ CWORD_CWORD_CWORD_CWORD,	/*  97   -33      */ CWORD_CWORD_CWORD_CWORD,	/*  98   -32      */ CWORD_CWORD_CWORD_CWORD,	/*  99   -31      */ CWORD_CWORD_CWORD_CWORD,	/* 100   -30      */ CWORD_CWORD_CWORD_CWORD,	/* 101   -29      */ CWORD_CWORD_CWORD_CWORD,	/* 102   -28      */ CWORD_CWORD_CWORD_CWORD,	/* 103   -27      */ CWORD_CWORD_CWORD_CWORD,	/* 104   -26      */ CWORD_CWORD_CWORD_CWORD,	/* 105   -25      */ CWORD_CWORD_CWORD_CWORD,	/* 106   -24      */ CWORD_CWORD_CWORD_CWORD,	/* 107   -23      */ CWORD_CWORD_CWORD_CWORD,	/* 108   -22      */ CWORD_CWORD_CWORD_CWORD,	/* 109   -21      */ CWORD_CWORD_CWORD_CWORD,	/* 110   -20      */ CWORD_CWORD_CWORD_CWORD,	/* 111   -19      */ CWORD_CWORD_CWORD_CWORD,	/* 112   -18      */ CWORD_CWORD_CWORD_CWORD,	/* 113   -17      */ CWORD_CWORD_CWORD_CWORD,	/* 114   -16      */ CWORD_CWORD_CWORD_CWORD,	/* 115   -15      */ CWORD_CWORD_CWORD_CWORD,	/* 116   -14      */ CWORD_CWORD_CWORD_CWORD,	/* 117   -13      */ CWORD_CWORD_CWORD_CWORD,	/* 118   -12      */ CWORD_CWORD_CWORD_CWORD,	/* 119   -11      */ CWORD_CWORD_CWORD_CWORD,	/* 120   -10      */ CWORD_CWORD_CWORD_CWORD,	/* 121    -9      */ CWORD_CWORD_CWORD_CWORD,	/* 122    -8      */ CWORD_CWORD_CWORD_CWORD,	/* 123    -7      */ CWORD_CWORD_CWORD_CWORD,	/* 124    -6      */ CWORD_CWORD_CWORD_CWORD,	/* 125    -5      */ CWORD_CWORD_CWORD_CWORD,	/* 126    -4      */ CWORD_CWORD_CWORD_CWORD,	/* 127    -3      */ CWORD_CWORD_CWORD_CWORD,	/* 128    -2      */ CWORD_CWORD_CWORD_CWORD,	/* 129    -1      */ CWORD_CWORD_CWORD_CWORD,	/* 130     0      */ CWORD_CWORD_CWORD_CWORD,	/* 131     1      */ CWORD_CWORD_CWORD_CWORD,	/* 132     2      */ CWORD_CWORD_CWORD_CWORD,	/* 133     3      */ CWORD_CWORD_CWORD_CWORD,	/* 134     4      */ CWORD_CWORD_CWORD_CWORD,	/* 135     5      */ CWORD_CWORD_CWORD_CWORD,	/* 136     6      */ CWORD_CWORD_CWORD_CWORD,	/* 137     7      */ CWORD_CWORD_CWORD_CWORD,	/* 138     8      */ CWORD_CWORD_CWORD_CWORD,	/* 139     9 "\t" */ CSPCL_CWORD_CWORD_CWORD,	/* 140    10 "\n" */ CNL_CNL_CNL_CNL,	/* 141    11      */ CWORD_CWORD_CWORD_CWORD,	/* 142    12      */ CWORD_CWORD_CWORD_CWORD,	/* 143    13      */ CWORD_CWORD_CWORD_CWORD,	/* 144    14      */ CWORD_CWORD_CWORD_CWORD,	/* 145    15      */ CWORD_CWORD_CWORD_CWORD,	/* 146    16      */ CWORD_CWORD_CWORD_CWORD,	/* 147    17      */ CWORD_CWORD_CWORD_CWORD,	/* 148    18      */ CWORD_CWORD_CWORD_CWORD,	/* 149    19      */ CWORD_CWORD_CWORD_CWORD,	/* 150    20      */ CWORD_CWORD_CWORD_CWORD,	/* 151    21      */ CWORD_CWORD_CWORD_CWORD,	/* 152    22      */ CWORD_CWORD_CWORD_CWORD,	/* 153    23      */ CWORD_CWORD_CWORD_CWORD,	/* 154    24      */ CWORD_CWORD_CWORD_CWORD,	/* 155    25      */ CWORD_CWORD_CWORD_CWORD,	/* 156    26      */ CWORD_CWORD_CWORD_CWORD,	/* 157    27      */ CWORD_CWORD_CWORD_CWORD,	/* 158    28      */ CWORD_CWORD_CWORD_CWORD,	/* 159    29      */ CWORD_CWORD_CWORD_CWORD,	/* 160    30      */ CWORD_CWORD_CWORD_CWORD,	/* 161    31      */ CWORD_CWORD_CWORD_CWORD,	/* 162    32  " " */ CSPCL_CWORD_CWORD_CWORD,	/* 163    33  "!" */ CWORD_CCTL_CCTL_CWORD,	/* 164    34  """ */ CDQUOTE_CENDQUOTE_CWORD_CWORD,	/* 165    35  "#" */ CWORD_CWORD_CWORD_CWORD,	/* 166    36  "$" */ CVAR_CVAR_CWORD_CVAR,	/* 167    37  "%" */ CWORD_CWORD_CWORD_CWORD,	/* 168    38  "&" */ CSPCL_CWORD_CWORD_CWORD,	/* 169    39  "'" */ CSQUOTE_CWORD_CENDQUOTE_CWORD,	/* 170    40  "(" */ CSPCL_CWORD_CWORD_CLP,	/* 171    41  ")" */ CSPCL_CWORD_CWORD_CRP,	/* 172    42  "*" */ CWORD_CCTL_CCTL_CWORD,	/* 173    43  "+" */ CWORD_CWORD_CWORD_CWORD,	/* 174    44  "," */ CWORD_CWORD_CWORD_CWORD,	/* 175    45  "-" */ CWORD_CCTL_CCTL_CWORD,	/* 176    46  "." */ CWORD_CWORD_CWORD_CWORD,	/* 177    47  "/" */ CWORD_CCTL_CCTL_CWORD,	/* 178    48  "0" */ CWORD_CWORD_CWORD_CWORD,	/* 179    49  "1" */ CWORD_CWORD_CWORD_CWORD,	/* 180    50  "2" */ CWORD_CWORD_CWORD_CWORD,	/* 181    51  "3" */ CWORD_CWORD_CWORD_CWORD,	/* 182    52  "4" */ CWORD_CWORD_CWORD_CWORD,	/* 183    53  "5" */ CWORD_CWORD_CWORD_CWORD,	/* 184    54  "6" */ CWORD_CWORD_CWORD_CWORD,	/* 185    55  "7" */ CWORD_CWORD_CWORD_CWORD,	/* 186    56  "8" */ CWORD_CWORD_CWORD_CWORD,	/* 187    57  "9" */ CWORD_CWORD_CWORD_CWORD,	/* 188    58  ":" */ CWORD_CCTL_CCTL_CWORD,	/* 189    59  ";" */ CSPCL_CWORD_CWORD_CWORD,	/* 190    60  "<" */ CSPCL_CWORD_CWORD_CWORD,	/* 191    61  "=" */ CWORD_CCTL_CCTL_CWORD,	/* 192    62  ">" */ CSPCL_CWORD_CWORD_CWORD,	/* 193    63  "?" */ CWORD_CCTL_CCTL_CWORD,	/* 194    64  "@" */ CWORD_CWORD_CWORD_CWORD,	/* 195    65  "A" */ CWORD_CWORD_CWORD_CWORD,	/* 196    66  "B" */ CWORD_CWORD_CWORD_CWORD,	/* 197    67  "C" */ CWORD_CWORD_CWORD_CWORD,	/* 198    68  "D" */ CWORD_CWORD_CWORD_CWORD,	/* 199    69  "E" */ CWORD_CWORD_CWORD_CWORD,	/* 200    70  "F" */ CWORD_CWORD_CWORD_CWORD,	/* 201    71  "G" */ CWORD_CWORD_CWORD_CWORD,	/* 202    72  "H" */ CWORD_CWORD_CWORD_CWORD,	/* 203    73  "I" */ CWORD_CWORD_CWORD_CWORD,	/* 204    74  "J" */ CWORD_CWORD_CWORD_CWORD,	/* 205    75  "K" */ CWORD_CWORD_CWORD_CWORD,	/* 206    76  "L" */ CWORD_CWORD_CWORD_CWORD,	/* 207    77  "M" */ CWORD_CWORD_CWORD_CWORD,	/* 208    78  "N" */ CWORD_CWORD_CWORD_CWORD,	/* 209    79  "O" */ CWORD_CWORD_CWORD_CWORD,	/* 210    80  "P" */ CWORD_CWORD_CWORD_CWORD,	/* 211    81  "Q" */ CWORD_CWORD_CWORD_CWORD,	/* 212    82  "R" */ CWORD_CWORD_CWORD_CWORD,	/* 213    83  "S" */ CWORD_CWORD_CWORD_CWORD,	/* 214    84  "T" */ CWORD_CWORD_CWORD_CWORD,	/* 215    85  "U" */ CWORD_CWORD_CWORD_CWORD,	/* 216    86  "V" */ CWORD_CWORD_CWORD_CWORD,	/* 217    87  "W" */ CWORD_CWORD_CWORD_CWORD,	/* 218    88  "X" */ CWORD_CWORD_CWORD_CWORD,	/* 219    89  "Y" */ CWORD_CWORD_CWORD_CWORD,	/* 220    90  "Z" */ CWORD_CWORD_CWORD_CWORD,	/* 221    91  "[" */ CWORD_CCTL_CCTL_CWORD,	/* 222    92  "\" */ CBACK_CBACK_CCTL_CBACK,	/* 223    93  "]" */ CWORD_CCTL_CCTL_CWORD,	/* 224    94  "^" */ CWORD_CWORD_CWORD_CWORD,	/* 225    95  "_" */ CWORD_CWORD_CWORD_CWORD,	/* 226    96  "`" */ CBQUOTE_CBQUOTE_CWORD_CBQUOTE,	/* 227    97  "a" */ CWORD_CWORD_CWORD_CWORD,	/* 228    98  "b" */ CWORD_CWORD_CWORD_CWORD,	/* 229    99  "c" */ CWORD_CWORD_CWORD_CWORD,	/* 230   100  "d" */ CWORD_CWORD_CWORD_CWORD,	/* 231   101  "e" */ CWORD_CWORD_CWORD_CWORD,	/* 232   102  "f" */ CWORD_CWORD_CWORD_CWORD,	/* 233   103  "g" */ CWORD_CWORD_CWORD_CWORD,	/* 234   104  "h" */ CWORD_CWORD_CWORD_CWORD,	/* 235   105  "i" */ CWORD_CWORD_CWORD_CWORD,	/* 236   106  "j" */ CWORD_CWORD_CWORD_CWORD,	/* 237   107  "k" */ CWORD_CWORD_CWORD_CWORD,	/* 238   108  "l" */ CWORD_CWORD_CWORD_CWORD,	/* 239   109  "m" */ CWORD_CWORD_CWORD_CWORD,	/* 240   110  "n" */ CWORD_CWORD_CWORD_CWORD,	/* 241   111  "o" */ CWORD_CWORD_CWORD_CWORD,	/* 242   112  "p" */ CWORD_CWORD_CWORD_CWORD,	/* 243   113  "q" */ CWORD_CWORD_CWORD_CWORD,	/* 244   114  "r" */ CWORD_CWORD_CWORD_CWORD,	/* 245   115  "s" */ CWORD_CWORD_CWORD_CWORD,	/* 246   116  "t" */ CWORD_CWORD_CWORD_CWORD,	/* 247   117  "u" */ CWORD_CWORD_CWORD_CWORD,	/* 248   118  "v" */ CWORD_CWORD_CWORD_CWORD,	/* 249   119  "w" */ CWORD_CWORD_CWORD_CWORD,	/* 250   120  "x" */ CWORD_CWORD_CWORD_CWORD,	/* 251   121  "y" */ CWORD_CWORD_CWORD_CWORD,	/* 252   122  "z" */ CWORD_CWORD_CWORD_CWORD,	/* 253   123  "{" */ CWORD_CWORD_CWORD_CWORD,	/* 254   124  "|" */ CSPCL_CWORD_CWORD_CWORD,	/* 255   125  "}" */ CENDVAR_CENDVAR_CWORD_CENDVAR,	/* 256   126  "~" */ CWORD_CCTL_CCTL_CWORD,	/* 257   127      */ CWORD_CWORD_CWORD_CWORD,};#endif                                                  /* USE_SIT_FUNCTION *//*      $NetBSD: alias.c,v 1.11 2002/11/24 22:35:38 christos Exp $      */#define ATABSIZE 39static int     funcblocksize;          /* size of structures in function */static int     funcstringsize;         /* size of strings in node */static pointer funcblock;              /* block to allocate function from */static char   *funcstring;             /* block to allocate strings from */static const short nodesize[26] = {      SHELL_ALIGN(sizeof (struct ncmd)),      SHELL_ALIGN(sizeof (struct npipe)),      SHELL_ALIGN(sizeof (struct nredir)),      SHELL_ALIGN(sizeof (struct nredir)),      SHELL_ALIGN(sizeof (struct nredir)),      SHELL_ALIGN(sizeof (struct nbinary)),      SHELL_ALIGN(sizeof (struct nbinary)),      SHELL_ALIGN(sizeof (struct nbinary)),      SHELL_ALIGN(sizeof (struct nif)),      SHELL_ALIGN(sizeof (struct nbinary)),      SHELL_ALIGN(sizeof (struct nbinary)),      SHELL_ALIGN(sizeof (struct nfor)),      SHELL_ALIGN(sizeof (struct ncase)),      SHELL_ALIGN(sizeof (struct nclist)),      SHELL_ALIGN(sizeof (struct narg)),      SHELL_ALIGN(sizeof (struct narg)),      SHELL_ALIGN(sizeof (struct nfile)),      SHELL_ALIGN(sizeof (struct nfile)),      SHELL_ALIGN(sizeof (struct nfile)),      SHELL_ALIGN(sizeof (struct nfile)),      SHELL_ALIGN(sizeof (struct nfile)),      SHELL_ALIGN(sizeof (struct ndup)),      SHELL_ALIGN(sizeof (struct ndup)),      SHELL_ALIGN(sizeof (struct nhere)),      SHELL_ALIGN(sizeof (struct nhere)),      SHELL_ALIGN(sizeof (struct nnot)),};static void calcsize(union node *);static void sizenodelist(struct nodelist *);static union node *copynode(union node *);static struct nodelist *copynodelist(struct nodelist *);static char *nodesavestr(char *);static void evalstring(char *);union node;     /* BLETCH for ansi C */static void evaltree(union node *, int);static void evalbackcmd(union node *, struct backcmd *);/* in_function returns nonzero if we are currently evaluating a function */#define in_function()   funcneststatic int evalskip;                   /* set if we are skipping commands */static int skipcount;           /* number of levels to skip */static int funcnest;                   /* depth of function calls *//* reasons for skipping commands (see comment on breakcmd routine) */#define SKIPBREAK       1#define SKIPCONT        2#define SKIPFUNC        3#define SKIPFILE        4/* * This file was generated by the mkbuiltins program. */#ifdef JOBSstatic int bgcmd(int, char **);#endifstatic int breakcmd(int, char **);static int cdcmd(int, char **);#ifdef CONFIG_ASH_CMDCMDstatic int commandcmd(int, char **);#endifstatic int dotcmd(int, char **);static int evalcmd(int, char **);static int execcmd(int, char **);static int exitcmd(int, char **);static int exportcmd(int, char **);static int falsecmd(int, char **);#ifdef JOBSstatic int fgcmd(int, char **);#endif#ifdef CONFIG_ASH_GETOPTSstatic int getoptscmd(int, char **);#endifstatic int hashcmd(int, char **);#ifndef CONFIG_FEATURE_SH_EXTRA_QUIETstatic int helpcmd(int argc, char **argv);#endif#ifdef JOBSstatic int jobscmd(int, char **);#endif#ifdef CONFIG_ASH_MATH_SUPPORTstatic int letcmd(int, char **);#endifstatic int localcmd(int, char **);static int pwdcmd(int, char **);static int readcmd(int, char **);static int returncmd(int, char **);static int setcmd(int, char **);static int shiftcmd(int, char **);static int timescmd(int, char **);static int trapcmd(int, char **);static int truecmd(int, char **);static int typecmd(int, char **);static int umaskcmd(int, char **);static int unsetcmd(int, char **);static int waitcmd(int, char **);static int ulimitcmd(int, char **);#ifdef JOBSstatic int killcmd(int, char **);#endif/*      $NetBSD: mail.h,v 1.9 2002/11/24 22:35:40 christos Exp $        */#ifdef CONFIG_ASH_MAILstatic void chkmail(void);static void changemail(const char *);#endif/*      $NetBSD: exec.h,v 1.20 2003/01/22 20:36:04 dsl Exp $    *//* values of cmdtype */#define CMDUNKNOWN      -1      /* no entry in table for command */#define CMDNORMAL       0       /* command is an executable program */#define CMDFUNCTION     1       /* command is a shell function */#define CMDBUILTIN      2       /* command is a shell builtin */struct builtincmd {	const char *name;	int (*builtin)(int, char **);	/* unsigned flags; */};#ifdef CONFIG_ASH_CMDCMD# ifdef JOBS#  ifdef CONFIG_ASH_ALIAS#    define COMMANDCMD (builtincmd + 7)#    define EXECCMD (builtincmd + 10)#  else#    define COMMANDCMD (builtincmd + 6)#    define EXECCMD (builtincmd + 9)#  endif# else /* ! JOBS */#  ifdef CONFIG_ASH_ALIAS#    define COMMANDCMD (builtincmd + 6)#    define EXECCMD (builtincmd + 9)#  else#    define COMMANDCMD (builtincmd + 5)#    define EXECCMD (builtincmd + 8)#  endif# endif /* JOBS */#else   /* ! CONFIG_ASH_CMDCMD */# ifdef JOBS#  ifdef CONFIG_ASH_ALIAS#    define EXECCMD (builtincmd + 9)#  else#    define EXECCMD (builtincmd + 8)#  endif# else /* ! JOBS */#  ifdef CONFIG_ASH_ALIAS#    define EXECCMD (builtincmd + 8)#  else#    define EXECCMD (builtincmd + 7)#  endif# endif /* JOBS */#endif /* CONFIG_ASH_CMDCMD */#define BUILTIN_NOSPEC  "0"#define BUILTIN_SPECIAL "1"#define BUILTIN_REGULAR "2"#define BUILTIN_SPEC_REG "3"#define BUILTIN_ASSIGN  "4"#define BUILTIN_SPEC_ASSG  "5"#define BUILTIN_REG_ASSG   "6"#define BUILTIN_SPEC_REG_ASSG   "7"#define IS_BUILTIN_SPECIAL(builtincmd) ((builtincmd)->name[0] & 1)#define IS_BUILTIN_REGULAR(builtincmd) ((builtincmd)->name[0] & 2)static const struct builtincmd builtincmd[] = {	{ BUILTIN_SPEC_REG      ".", dotcmd },	{ BUILTIN_SPEC_REG      ":", truecmd },#ifdef CONFIG_ASH_ALIAS	{ BUILTIN_REG_ASSG      "alias", aliascmd },#endif#ifdef JOBS	{ BUILTIN_REGULAR       "bg", bgcmd },#endif	{ BUILTIN_SPEC_REG      "break", breakcmd },	{ BUILTIN_REGULAR       "cd", cdcmd },	{ BUILTIN_NOSPEC        "chdir", cdcmd },

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -