📄 ash.c
字号:
/* 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 + -