編寫簡單的shell(輸入輸出重定向)

2021-09-19 10:52:07 字數 841 閱讀 9511

#include #include #include #include #include #include #include #include int main()

; char cmd[1024] = ;

printf("shell:");

fflush(stdout);

//%[^\n] 遇到\n結束輸入

//%*c 刪除最後乙個字元

if(scanf("%[^\n]%*c",cmd) != 1)

//解析輸入輸出重定向

char *ptr = cmd;

int flag = 0;

while(*ptr != '\0')

if(*ptr == '>')

while(*ptr != '\0' && isspace(*ptr))

strcpy(file,ptr);

}ptr++;

}//解析字元

ptr = cmd;

char *ar**[32] = ;

int argc = 0;

while(*ptr != '\0')

else

ptr++;

} //建立子程序,執行命令

int pid = fork();

if(pid <0)

else if(pid == 0)

else if(flag == 2)

execvp(ar**[0],ar**); //替換程序

}wait(null); //接收子程序,避免子程序稱為殭屍程序(雖然不太可能)

return 0;

}

Shell教程十一 Shell 輸入 輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...

Shell輸入輸出

重定向至檔案 echo用於顯示,read用於讀入,其中person是變數名字,shell中變數用字使用的時候用 框起來 input and output echo what s your name?read person echo hello,效果如下圖 顯示轉義字元 echo it is a te...

shell 輸入輸出

標準輸入 stdin 0,或者 鍵盤 標準輸出 stdout 1,或者 終端顯示器 標準錯誤輸出 stderr 2,2 或者2 指令執行失敗返回的錯誤資訊,終端顯示器 將輸出結果重定向到檔案中 1.覆蓋到檔案中 command outputfile 檔案的完整路徑 兩邊需要空格 2.追加到檔案中 新...