📄 envinit.c
字号:
#include <stdio.h>#include <ctype.h>#define SH 1#define CSH 2#define DEFSH CSHFILE * fopen();main(argc, argv)int argc;char **argv;{ register int shell; register char *myname, *efile; myname = *argv; if (argc < 2 || argc > 3) { fprintf(stderr, "usage: %s envfile [ sh | csh ]\n", myname); exit(1); } efile = *++argv; if (argc == 3) if (!strcmp(*++argv, "sh")) shell = SH; else if (!strcmp(*argv, "csh")) shell = CSH; else { fprintf(stderr, "usage: %s envfile [ sh | csh ]\n", myname); exit(1); } else shell = DEFSH; envinit(efile, shell); exit(0);}envinit(efile, shell)register char *efile;register int shell;{ char buf[BUFSIZ]; register int first; register char *lval, *rval, *p; register FILE *fp; if (!(fp = fopen(efile, "r"))) { perror(efile); exit(2); } first = 1; while (fgets(buf, BUFSIZ, fp)) { if (*buf == '#' || *buf == '\n') continue; for (lval = buf; isspace(*lval); lval++) ; for (rval = lval; !isspace(*rval); rval++) ; *rval++ = (char)0; for ( ; isspace(*rval); rval++) ; for (p = rval; !isspace(*p); p++) ; *p = (char)0; if (!first) printf(" ; "); else first = 0; if (shell == SH) { printf("%s=%s ; ", lval, rval); printf("export %s", lval); } else printf("setenv %s %s", lval, rval); } putchar('\n');}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -