[C][Golf]7行UNIXシェル
以前スレッドに張られた7行UNIXシェルを短くしてみた。 気になった点をちょちょいと、 ただ短くしただけだけなのでまだまだ改良の余地はあると思う。
これでパイプとかリダイレクトとか実装できるかもね
extern struct _IO_FILE *stdin;extern char**environ;main(int c,char**a){char*V[
9],B[99],**A,*C,i;for(environ=a+1;printf(">")&&fgets(B,99,stdin);){*strchr(B,
10)=0;for(*(A=V)=C=B;C=strchr(C,32);*++A=C)*C++=0;*++A=0;if(!strcmp(*V,"exit")
)exit(0);if(strcmp(*V,"cd")||chdir(V[1])){switch(fork()){case 0:execvp(*V,V);
case-1:puts("err");exit(0);}wait(0);}}}
./ish PATH=/usr/bin TZ=-9 てな感じで環境変数とか設定とか云々カンヌん。
しかしなぜishなのか? BASE64みたいなアレと関係あるのかなぁ