sh.init.c
来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 267 行
C
267 行
#ifndef lintstatic char *sccsid = "@(#)sh.init.c 4.1 (ULTRIX) 7/17/90";#endif/************************************************************************ * * * Copyright (c) 1988 by * * Digital Equipment Corporation, Maynard, MA * * All rights reserved. * * * * This software is furnished under a license and may be used and * * copied only in accordance with the terms of such license and * * with the inclusion of the above copyright notice. This * * software or any other copies thereof may not be provided or * * otherwise made available to any other person. No title to and * * ownership of the software is hereby transferred. * * * * The information in this software is subject to change without * * notice and should not be construed as a commitment by Digital * * Equipment Corporation. * * * * Digital assumes no responsibility for the use or reliability * * of its software on equipment which is not supplied by Digital. * * * ************************************************************************//* ------------------------------------------------------------------ *//* | Copyright Unpublished, MIPS Computer Systems, Inc. All Rights | *//* | Reserved. This software contains proprietary and confidential | *//* | information of MIPS and its suppliers. Use, disclosure or | *//* | reproduction is prohibited without the prior express written | *//* | consent of MIPS. | *//* ------------------------------------------------------------------ *//* $Header: sh.init.c,v 1.5 87/04/06 20:52:30 dce Exp $ */#include "sh.local.h"/* * C shell * * Modification History */extern int doalias();extern int dobg();extern int dobreak();extern int dochngd();extern int docontin();extern int dodirs();extern int doecho();extern int doelse();extern int doend();extern int doendif();extern int doendsw();extern int doeval();extern int doexit();extern int dofg();extern int doforeach();extern int doglob();extern int dogoto();extern int dohash();extern int dohist();extern int doif();extern int dojobs();extern int dokill();extern int dolet();extern int dolimit();extern int dologin();extern int dologout();#ifdef NEWGRPextern int donewgrp();#endifextern int donice();extern int donotify();extern int donohup();extern int doonintr();extern int dopopd();extern int dopushd();extern int dorepeat();extern int doset();extern int dosetenv();extern int dosource();extern int dostop();extern int dosuspend();extern int doswbrk();extern int doswitch();extern int dotime();extern int dounlimit();extern int doumask();extern int dowait();extern int dowhile();extern int dozip();extern int execash();extern int goodbye();#ifdef VFORKextern int hashstat();#endifextern int shift();extern int showall();extern int unalias();extern int dounhash();extern int unset();extern int dounsetenv();extern int dowhich();#define INF 1000struct biltins { char *bname; int (*bfunct)(); short minargs, maxargs;} bfunc[] = { /* GAG - must be kept in alphabetic order for isbfunc() */ "@", dolet, 0, INF, "alias", doalias, 0, INF, "alloc", showall, 0, 1, "bg", dobg, 0, INF, "break", dobreak, 0, 0, "breaksw", doswbrk, 0, 0,#ifdef IIASA "bye", goodbye, 0, 0,#endif "case", dozip, 0, 1, "cd", dochngd, 0, 1, "chdir", dochngd, 0, 1, "continue", docontin, 0, 0, "default", dozip, 0, 0, "dirs", dodirs, 0, 1, "echo", doecho, 0, INF, "else", doelse, 0, INF, "end", doend, 0, 0, "endif", dozip, 0, 0, "endsw", dozip, 0, 0, "eval", doeval, 0, INF, "exec", execash, 1, INF, "exit", doexit, 0, INF, "fg", dofg, 0, INF, "foreach", doforeach, 3, INF,#ifdef IIASA "gd", dopushd, 0, 1,#endif "glob", doglob, 0, INF, "goto", dogoto, 1, 1,#ifdef VFORK "hashstat", hashstat, 0, 0,#endif "history", dohist, 0, 3, "if", doif, 1, INF, "jobs", dojobs, 0, 1, "kill", dokill, 1, INF, "limit", dolimit, 0, 3, "login", dologin, 0, 1, "logout", dologout, 0, 0,#ifdef NEWGRP "newgrp", donewgrp, 1, 1,#endif "nice", donice, 0, INF, "nohup", donohup, 0, INF, "notify", donotify, 0, INF, "onintr", doonintr, 0, 2, "popd", dopopd, 0, 1, "pushd", dopushd, 0, 1,#ifdef IIASA "rd", dopopd, 0, 1,#endif "rehash", dohash, 0, 0, "repeat", dorepeat, 2, INF, "set", doset, 0, INF, "setenv", dosetenv, 0, 2, "shift", shift, 0, 1, "source", dosource, 1, 2, "stop", dostop, 1, INF, "suspend", dosuspend, 0, 0, "switch", doswitch, 1, INF, "time", dotime, 0, INF, "umask", doumask, 0, 1, "unalias", unalias, 1, INF, "unhash", dounhash, 0, 0, "unlimit", dounlimit, 0, INF, "unset", unset, 1, INF, "unsetenv", dounsetenv, 1, INF, "wait", dowait, 0, 0, "which", dowhich, 1, INF, "while", dowhile, 1, INF,};int nbfunc = sizeof bfunc / sizeof *bfunc;#define ZBREAK 0#define ZBRKSW 1#define ZCASE 2#define ZDEFAULT 3#define ZELSE 4#define ZEND 5#define ZENDIF 6#define ZENDSW 7#define ZEXIT 8#define ZFOREACH 9#define ZGOTO 10#define ZIF 11#define ZLABEL 12#define ZLET 13#define ZSET 14#define ZSWITCH 15#define ZTEST 16#define ZTHEN 17#define ZWHILE 18struct srch { char *s_name; short s_value;} srchn[] = { "@", ZLET, "break", ZBREAK, "breaksw", ZBRKSW, "case", ZCASE, "default", ZDEFAULT, "else", ZELSE, "end", ZEND, "endif", ZENDIF, "endsw", ZENDSW, "exit", ZEXIT, "foreach", ZFOREACH, "goto", ZGOTO, "if", ZIF, "label", ZLABEL, "set", ZSET, "switch", ZSWITCH, "while", ZWHILE,};int nsrchn = sizeof srchn / sizeof *srchn;struct mesg { char *iname; char *pname;} mesg[] = { 0, 0, "HUP", "Hangup", "INT", "Interrupt", "QUIT", "Quit", "ILL", "Illegal instruction", "TRAP", "Trace/BPT trap", "IOT", "IOT trap", "EMT", "EMT trap", "FPE", "Floating exception", "KILL", "Killed", "BUS", "Bus error", "SEGV", "Segmentation fault", "SYS", "Bad system call", "PIPE", "Broken pipe", "ALRM", "Alarm clock", "TERM", "Terminated", "URG", "Urgent I/O condition", "STOP", "Stopped (signal)", "TSTP", "Stopped", "CONT", "Continued", "CHLD", "Child exited", "TTIN", "Stopped (tty input)", "TTOU", "Stopped (tty output)", "IO", "I/O possible", "XCPU", "Cputime limit exceeded", "XFSZ", "Filesize limit exceeded", "VTALRM","Virtual timer expired", "PROF", "Profiling timer expired", "WINCH","Window size changed", 0, "Signal 29", "USR1", "User defined signal 1", "USR2", "User defined signal 2", 0, "Signal 32"};
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?