ソースを参照

commit files

master
杨浩然 3年前
コミット
db0d8aefd2
17個のファイルの変更349行の追加4行の削除
  1. +77
    -1
      README.md
  2. バイナリ
      lab_report/1 Shell.doc
  3. +0
    -0
      lab_report/project-1.pdf
  4. バイナリ
      lab_report/structure.xmind
  5. バイナリ
      lab_report/test_case_img/cd.png
  6. バイナリ
      lab_report/test_case_img/exit.png
  7. バイナリ
      lab_report/test_case_img/history.png
  8. バイナリ
      lab_report/test_case_img/ls.png
  9. バイナリ
      lab_report/test_case_img/mytop.png
  10. バイナリ
      lab_report/test_case_img/pipe.png
  11. バイナリ
      lab_report/test_case_img/redirect_in.png
  12. バイナリ
      lab_report/test_case_img/redirect_out.png
  13. バイナリ
      lab_report/test_case_img/vi.png
  14. バイナリ
      lab_report/test_case_img/vi_bg.png
  15. +269
    -0
      lab_report/yeeshell.svg
  16. +3
    -3
      yeeshell.c

+ 77
- 1
README.md ファイルの表示

@ -1,3 +1,79 @@
# OS2021_Project1.Shell
OS2021_Project1.Shell
###
#### yeeshell.c
main function and function definition
#### yeeshell.h
function declaration and macro definition
###
### 1. Deployment
Pull from my shuishan git.
```shell
git clone root@gitea.shuishan.net.cn:10195501441/OS2021_Project1.Shell.git
```
In the **MINIX3** environment, use clang to compile the program.
```shell
clang yeeshell.c -o yeeshell
```
Run yeeshell.
```shell
./yeeshell
```
### 2. Test Case
​ (1) `cd /your/path`
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\cd.png" alt="cd" style="zoom: 76%;" />
​ (2) `ls -a -l`
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\ls.png" alt="ls" style="zoom:76%;" />
​ (3) `ls -a -l > result.txt`
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\redirect_out.png" alt="redirect_out" style="zoom:76%;" />
​ (4) `vi result.txt`
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\vi.png" alt="vi" style="zoom:76%;" />
​ (5) `grep a < result.txt`
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\redirect_in.png" alt="redirect_in" style="zoom:76%;" />
​ (6) `ls -a -l | grep a `
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\pipe.png" alt="pipe" style="zoom:76%;" />
​ (7) `vi result.txt`
​ This command can not be executed in the **MINIX3** environment. It prints the following error information.
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\vi_bg.png" alt="vi_bg" style="zoom:76%;" />
​ (8) `mytop `
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\mytop.png" alt="mytop" style="zoom:76%;" />
​ (9) `history n`
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\history.png" alt="history" style="zoom:76%;" />
​ (10) `exit`
<img src="E:\undergraduate\sophomore\SEM2\OS\experiments\1 Shell\OS2021_Project1.Shell\lab_report\test_case_img\exit.png" alt="exit" style="zoom:76%;" />

バイナリ
lab_report/1 Shell.doc ファイルの表示


project-1.pdf → lab_report/project-1.pdf ファイルの表示


バイナリ
lab_report/structure.xmind ファイルの表示


バイナリ
lab_report/test_case_img/cd.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 68  |  サイズ: 7.5 KiB

バイナリ
lab_report/test_case_img/exit.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 67  |  サイズ: 3.9 KiB

バイナリ
lab_report/test_case_img/history.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 338  |  サイズ: 12 KiB

バイナリ
lab_report/test_case_img/ls.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 273  |  サイズ: 29 KiB

バイナリ
lab_report/test_case_img/mytop.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 101  |  サイズ: 13 KiB

バイナリ
lab_report/test_case_img/pipe.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 305  |  サイズ: 34 KiB

バイナリ
lab_report/test_case_img/redirect_in.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 305  |  サイズ: 34 KiB

バイナリ
lab_report/test_case_img/redirect_out.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 340  |  サイズ: 37 KiB

バイナリ
lab_report/test_case_img/vi.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 779  |  サイズ: 39 KiB

バイナリ
lab_report/test_case_img/vi_bg.png ファイルの表示

変更前 変更後
幅: 1230  |  高さ: 65  |  サイズ: 6.3 KiB

+ 269
- 0
lab_report/yeeshell.svg
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 3
- 3
yeeshell.c ファイルの表示

@ -251,10 +251,10 @@ int do_pipe(char **pipe_arg_1, char **pipe_arg_2)
}
}
if ((prog_2 = fork()) == 0) /* Child process 1 */
if ((prog_2 = fork()) == 0) /* Child process 2 */
{
dup2(fds[0], 0);
close(0);
dup2(fds[0]);
close(fds[0]);
close(fds[1]);

読み込み中…
キャンセル
保存