2010-09-18 69 views
0

我正在用C编写一个简单的Unix shell。下面是我到目前为止的内容。

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <unistd.h> 

int main() { 
    char x[256], y[256], z[256]; 
    while (1) { 
     getcwd(y, sizeof(y)); 
     printf("%s$ ", y); 
     fgets(x, sizeof(x), stdin); 
     if (x[0] == 'c' && x[1] == 'd' && x[2] == ' ') { 
      sscanf(x, "cd %s", &z); 
      chdir(z); 
     } 
     else if (strcmp(x, "exit\n") == 0) break; 
     else system(x); 
    } 
    return 0; 
} 

我想要做的是使波浪号字符(〜)和$ HOME可以互换。我想我可以用简单的查找和替换功能来做到这一点。有人知道这样的事情吗?

+0

要模仿真实的外壳,您不希望它们可以互换 - 那么您将无法输入代字符。你可以用'$ HOME'的值来替换单词开头的*无引号*代字号。 – 2010-12-28 11:41:13

回答