در این مطلب، ویدئو اجرای دستورات شل با استفاده از پایتون (توضیحات مفصل) با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:29:41
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,120 –> 00:00:02,850
سلام بچه ها در این ویدیو ما یاد می گیریم
2
00:00:02,850 –> 00:00:04,920
که چگونه دستورات پوسته را با استفاده از
3
00:00:04,920 –> 00:00:08,039
پایتون توسط دستورات شل اجرا کنیم منظورم
4
00:00:08,039 –> 00:00:09,870
دستوراتی است که معمولاً روی ترمینال خود اجرا می کنید
5
00:00:09,870 –> 00:00:12,780
یا خط فرمان
6
00:00:12,780 –> 00:00:14,610
بارها شرایطی وجود دارد که
7
00:00:14,610 –> 00:00:17,010
تنها گزینه برای برنامه پایتون برای
8
00:00:17,010 –> 00:00:18,420
تعامل با آنها وجود دارد. برخی از برنامه های دیگر
9
00:00:18,420 –> 00:00:20,699
از طریق CLI آنها یا رابط خط فرمان است،
10
00:00:20,699 –> 00:00:23,580
بنابراین در این مورد ما باید
11
00:00:23,580 –> 00:00:26,279
بدانیم که چگونه CLI یا کیبوتز پوسته را
12
00:00:26,279 –> 00:00:29,670
با استفاده از پایتون اجرا کنیم، قبلاً
13
00:00:29,670 –> 00:00:32,488
فقط ماژول زباله برای انجام این کار وجود داشت، اما از آنجایی که
14
00:00:32,488 –> 00:00:34,260
چربی درگیر بود، بسیار زیاد شد.
15
00:00:34,260 –> 00:00:37,110
کتابخانه قدرتمندی به نام sub process برای انجام این
16
00:00:37,110 –> 00:00:39,840
کار در این ویدیو
17
00:00:39,840 –> 00:00:42,660
ابتدا یک مرور مختصر از عملکردهای ماژولهای سیستم عامل
18
00:00:42,660 –> 00:00:44,969
برای اجرای دستورات پوسته ارائه میدهم و
19
00:00:44,969 –> 00:00:47,190
سپس ماژول زیر فرآیند را با مثالهای بسیار جالب به طور کامل بررسی میکنم،
20
00:00:47,190 –> 00:00:48,719
21
00:00:48,719 –> 00:00:52,020
بنابراین بدون هیچ تاخیری بیایید دریافت کنیم.
22
00:00:52,020 –> 00:00:55,590
خوب شروع شد، بنابراین قبل از اینکه نگاهی به
23
00:00:55,590 –> 00:00:58,140
هر یک از توابع ارائه شده توسط پایتون
24
00:00:58,140 –> 00:01:00,149
برای اجرای دستورات پوسته بیندازیم، اجازه دهید
25
00:01:00,149 –> 00:01:02,399
سعی کنیم بفهمیم وقتی می گوییم tr هستیم دقیقا چه اتفاقی می افتد.
26
00:01:02,399 –> 00:01:04,199
برای
27
00:01:04,199 –> 00:01:06,470
اجرای یک فرمان پوسته خاص، بنابراین
28
00:01:06,470 –> 00:01:09,360
برنامه پایتون شما اساساً
29
00:01:09,360 –> 00:01:12,030
به عنوان یک فرآیند اجرا می شود، بنابراین اجازه دهید آن را
30
00:01:12,030 –> 00:01:14,460
حتی همین حالا هم وقتی می گوییم که
31
00:01:14,460 –> 00:01:16,320
می خواهیم یک دستور شل را اجرا کنیم
32
00:01:16,320 –> 00:01:19,439
، یک مفسر خط فرمان است، بنابراین
33
00:01:19,439 –> 00:01:20,759
هر عملیاتی آن را صدا کنیم. سیستم یک
34
00:01:20,759 –> 00:01:22,650
مفسر خط فرمان دارد و برای
35
00:01:22,650 –> 00:01:24,990
اینکه آن مفسر خط فرمان را فراخوانی کنید و
36
00:01:24,990 –> 00:01:27,780
به آن بگویید که دستور پوسته داده شده شما را اجرا کند،
37
00:01:27,780 –> 00:01:30,180
آنچه شما نیاز دارید، فرآیند دیگری است
38
00:01:30,180 –> 00:01:32,189
زیرا هم مفسر خط فرمان
39
00:01:32,189 –> 00:01:33,960
و هم برنامه پایتون شما نمی توانند
40
00:01:33,960 –> 00:01:36,210
در یک فرآیند اجرا شوند، بنابراین اتفاق میافتد این است که
41
00:01:36,210 –> 00:01:39,240
فرآیند برنامههای پایتون شما یک فرآیند جدید را فراخوانی میکند
42
00:01:39,240 –> 00:01:42,060
یا میتوانید
43
00:01:42,060 –> 00:01:44,399
آن را یک فرآیند فرعی بنامید تا آن
44
00:01:44,399 –> 00:01:46,500
را P2 بنامیم تا اکنون مسئول
45
00:01:46,500 –> 00:01:48,740
اجرای مفسر خط فرمان و
46
00:01:48,740 –> 00:01:51,390
اجرای فرمان پوسته شما و آنچه
47
00:01:51,390 –> 00:01:53,340
اتفاق میافتد باشد. این است که اکنون فرآیند والد شما
48
00:01:53,340 –> 00:01:56,909
p1 میتواند منتظر بماند تا افراد آن چیز را کامل کنند
49
00:01:56,909 –> 00:02:00,500
و سعی کنند کد وضعیت
50
00:02:00,500 –> 00:02:04,799
هر نتیجهای که از اجرای
51
00:02:04,799 –> 00:02:07,140
آن فرمان پوسته بود یا یک هر نتیجه خاصی
52
00:02:07,140 –> 00:02:09,330
53
00:02:09,330 –> 00:02:11,489
که با اجرای آن فرمان پوسته خاص تولید می شود، تولید می شود،
54
00:02:11,489 –> 00:02:13,290
بنابراین به این ترتیب
55
00:02:13,290 –> 00:02:13,680
مقداری
56
00:02:13,680 –> 00:02:15,540
نفی بین هر دو فرآیند اتفاق می افتد
57
00:02:15,540 –> 00:02:19,230
و به نوعی شما فقط یک
58
00:02:19,230 –> 00:02:21,689
تابع خاص را در پایتون فراخوانی می کنید، اما در
59
00:02:21,689 –> 00:02:24,060
پشت صحنه فرآیندی را که خداوند ایجاد کرده است و
60
00:02:24,060 –> 00:02:26,250
فرآیند چیزی دارد و آن
61
00:02:26,250 –> 00:02:28,170
فرآیند با برنامه پایتون شما ارتباط برقرار می
62
00:02:28,170 –> 00:02:30,420
کند تا خروجی مورد نیاز را به آن بازگرداند،
63
00:02:30,420 –> 00:02:34,200
اکنون اجازه دهید مروری کوتاه بر
64
00:02:34,200 –> 00:02:36,689
برخی از روش های قدیمی مورد استفاده برای اجرای
65
00:02:36,689 –> 00:02:39,420
دستورات پوسته با استفاده از پایتون داشته باشیم، بنابراین همه
66
00:02:39,420 –> 00:02:41,280
این توابع متعلق به ماژول سیستم عامل هستند
67
00:02:41,280 –> 00:02:43,200
و در حال استفاده هستند. برای مدت طولانی
68
00:02:43,200 –> 00:02:45,959
تا زمانی که ماژول sub process به
69
00:02:45,959 –> 00:02:48,840
عنوان جایگزین بهتر معرفی شد، اگرچه ما
70
00:02:48,840 –> 00:02:50,250
دیگر از این توابع
71
00:02:50,250 –> 00:02:52,530
استفاده نخواهیم کرد، اما همچنان این
72
00:02:52,530 –> 00:02:54,780
توابع بسیار ساده هستند و می توانند درک ما
73
00:02:54,780 –> 00:02:57,030
را از اجرای دستورات پوسته افزایش دهند
74
00:02:57,030 –> 00:02:58,919
، به همین دلیل است که به سرعت
75
00:02:58,919 –> 00:03:01,590
از آنها عبور کنید، بنابراین اجازه دهید ابتدا
76
00:03:01,590 –> 00:03:04,500
ماژول سیستم عامل و اولین
77
00:03:04,500 –> 00:03:06,299
فرمان یا اولین تابع را وارد کنم n
78
00:03:06,299 –> 00:03:08,459
که ما میخواهیم سیستم نقطهای او را بررسی کنیم،
79
00:03:08,459 –> 00:03:12,810
بنابراین سیستم نقطهای
80
00:03:12,810 –> 00:03:15,419
دستور را به عنوان ورودی دریافت میکند و اجازه
81
00:03:15,419 –> 00:03:17,129
میدهیم ببینیم چه چیزی برمیگرداند، بنابراین ببینید که
82
00:03:17,129 –> 00:03:19,889
برای اجرای دستور LS به من صفر میدهد، بنابراین دستور LS
83
00:03:19,889 –> 00:03:22,229
در یونیکس در سیستم یونیکس مانند به
84
00:03:22,229 –> 00:03:23,940
سادگی لیست تمام فایل ها و
85
00:03:23,940 –> 00:03:25,079
دایرکتوری ها را در فهرست کاری فعلی شما برمی گرداند،
86
00:03:25,079 –> 00:03:27,629
بنابراین من 0 را دریافت می کنم نه
87
00:03:27,629 –> 00:03:28,979
خروجی واقعی که
88
00:03:28,979 –> 00:03:31,169
چیزی شبیه به این بود، به این دلیل که
89
00:03:31,169 –> 00:03:33,750
در سیستم های یونیکس مقدار بازگشتی،
90
00:03:33,750 –> 00:03:36,930
وضعیت خروج از فرآیند و مقدار 0
91
00:03:36,930 –> 00:03:38,609
وضعیت خروج به این معنی است که همه چیز
92
00:03:38,609 –> 00:03:41,010
خوب پیش رفت، هیچ خطایی وجود نداشت، اما اگر
93
00:03:41,010 –> 00:03:42,900
چیز دیگری دریافت کردید، مثلاً اگر من
94
00:03:42,900 –> 00:03:49,340
سیستم عامل نقطهای را اجرا کنم و اجازه دهید فقط سعی کنم
95
00:03:49,340 –> 00:03:53,909
RM XYZ را اجرا
96
00:03:53,909 –> 00:03:55,709
کنم که من هستم، یعنی دارم تلاش میکنم. برای حذف چیزی
97
00:03:55,709 –> 00:03:57,299
که در واقع وجود ندارد زیرا همانطور
98
00:03:57,299 –> 00:03:58,919
که می بینید چیزی به نام XYZ
99
00:03:58,919 –> 00:04:01,379
یا مسیر فعلی من وجود ندارد، بنابراین اگر فقط سعی کنم
100
00:04:01,379 –> 00:04:04,290
آن را اجرا کنم به 5/6 می رسم و به سادگی
101
00:04:04,290 –> 00:04:06,329
به این معنی است که اتفاق بدی افتاده است
102
00:04:06,329 –> 00:04:09,449
و دستور انجام شده است. موفقیت آمیز است
103
00:04:09,449 –> 00:04:12,780
بنابراین وضعیت خروج این است و در
104
00:04:12,780 –> 00:04:14,639
مورد ویندوز در واقع شما
105
00:04:14,639 –> 00:04:16,649
وضعیت خروج را دریافت نخواهید کرد در عوض
106
00:04:16,649 –> 00:04:19,349
خروجی واقعی اجرای دستور پوسته خود را دریافت خواهید کرد به
107
00:04:19,349 –> 00:04:21,930
طوری که
108
00:04:21,930 –> 00:04:23,880
در انواع مختلف سیستم عامل برای این کار کمی رفتار متفاوت است.
109
00:04:23,880 –> 00:04:26,750
عملکرد خاص و
110
00:04:26,750 –> 00:04:28,940
اکنون به کاربران یونیکس می رسد، زیرا می بینید
111
00:04:28,940 –> 00:04:32,540
که برای کاربران یونیکس به
112
00:04:32,540 –> 00:04:34,610
وضوح محدودیتی برای استفاده از U.S وجود دارد.
113
00:04:34,610 –> 00:04:36,290
دستور سیستم THAAD یا تابعی
114
00:04:36,290 –> 00:04:39,860
که نمیتوانید خروجی آن را به درستی دریافت کنید،
115
00:04:39,860 –> 00:04:41,810
بنابراین برای دریافت خروجی
116
00:04:41,810 –> 00:04:44,090
اجرای فرمان پوسته، چیزی که میتوانید استفاده
117
00:04:44,090 –> 00:04:47,210
کنید تابع باز نقطه P OS است، بنابراین تابع باز نقطه P
118
00:04:47,210 –> 00:04:48,760
دوباره
119
00:04:48,760 –> 00:04:52,250
دستور شما را به عنوان ورودی دریافت میکند. و در واقع
120
00:04:52,250 –> 00:04:55,310
یک شی فایل باز را به شما برمی گرداند،
121
00:04:55,310 –> 00:04:58,790
بنابراین شما به سادگی می توانید
122
00:04:58,790 –> 00:05:01,490
روی آن شی فایل باز شده لید را انجام دهید و
123
00:05:01,490 –> 00:05:02,990
خروجی را دریافت خواهید کرد، بنابراین ببینید که
124
00:05:02,990 –> 00:05:04,490
ما خروجی را دریافت می کنیم که
125
00:05:04,490 –> 00:05:07,040
بیابان واقعی است اما باید واقعی باشد.
126
00:05:07,040 –> 00:05:10,430
نتیجه دستور من است، بنابراین اجازه دهید من فقط یک پرینت انجام دهم
127
00:05:10,430 –> 00:05:13,340
تا آن را به شکل بهتری نشان دهم، بنابراین نگاه
128
00:05:13,340 –> 00:05:15,230
کنید که درست است،
129
00:05:15,230 –> 00:05:17,030
درست همان چیزی است که با
130
00:05:17,030 –> 00:05:20,240
اجرای دستور عادی برگردانده شده است، بنابراین در این
131
00:05:20,240 –> 00:05:23,510
روش می توانید از P open استفاده کنید. و در آخر
132
00:05:23,510 –> 00:05:25,130
ما چیزی به نام OS dot spawn داریم
133
00:05:25,130 –> 00:05:28,460
که در واقع این تابع دارای چندین
134
00:05:28,460 –> 00:05:30,860
نام با تغییرات مختلف است
135
00:05:30,860 –> 00:05:32,960
و دلیل آن
136
00:05:32,960 –> 00:05:34,940
نوع آرگومان هایی است که می توان به آن منتقل کرد
137
00:05:34,940 –> 00:05:36,680
، اما نکته اصلی که باید در مورد آن
138
00:05:36,680 –> 00:05:39,320
بدانید. این است که
139
00:05:39,320 –> 00:05:42,680
مسیر برنامه ای را که در یک فرآیند جدید عبور می کنید اجرا می کند
140
00:05:42,680 –> 00:05:45,080
و نام آن در واقع
141
00:05:45,080 –> 00:05:47,780
همان را نشان می دهد که OS dot spawned به این معنی
142
00:05:47,780 –> 00:05:50,330
است که یک فرآیند جدید برای
143
00:05:50,330 –> 00:05:53,450
اجرای برنامه ای که مسیر آن
144
00:05:53,450 –> 00:05:55,850
را ارائه می دهید و اولین آرگومان را شروع می کند.
145
00:05:55,850 –> 00:05:59,510
حالت است که زمانی که من دو مقدار داشته باشم
146
00:05:59,510 –> 00:06:01,310
شما هر یک از آن دو مقدار را قرار می دهید
147
00:06:01,310 –> 00:06:03,410
که عبارتند از P underscore no wait یا piano score
148
00:06:03,410 –> 00:06:05,840
صبر کنید بنابراین اگر بگویید Pia Toscano اتفاقی که
149
00:06:05,840 –> 00:06:07,460
می افتد این است که این تابع
150
00:06:07,460 –> 00:06:09,710
منتظر تکمیل دستور شما نخواهد بود.
151
00:06:09,710 –> 00:06:12,169
اجرای آن به
152
00:06:12,169 –> 00:06:14,780
سادگی شناسه فرآیندی را
153
00:06:14,780 –> 00:06:17,000
که دستور را اجرا می کند برمی گرداند و تمام آن خروجی را دریافت می کنید
154
00:06:17,000 –> 00:06:19,160
و تمام می شود اما در
155
00:06:19,160 –> 00:06:21,740
صورت P و escape منتظر می ماند تا
156
00:06:21,740 –> 00:06:24,850
دستور به طور کامل اجرا شود و اگر
157
00:06:24,850 –> 00:06:28,190
اجرا به طور عادی انجام شد به
158
00:06:28,190 –> 00:06:30,830
سادگی کد خروج را ارسال میکند، اما اگر
159
00:06:30,830 –> 00:06:32,750
سعی کردید فرآیند را از بین ببرید، سیگنالی را که برای از بین بردن آن فرآیند
160
00:06:32,750 –> 00:06:34,130
استفاده شده بود، برمیگرداند،
161
00:06:34,130 –> 00:06:36,919
بنابراین اجازه دهید
162
00:06:36,919 –> 00:06:40,729
یک مثال بسیار سریع از سیستمعاملی داشته باشیم که تولید نمیشود و
163
00:06:40,729 –> 00:06:43,009
بنابراین همیشه. s rot spawn اجازه دهید با
164
00:06:43,009 –> 00:06:45,800
ساده ترین یک spawn el برویم و حالا حالت را
165
00:06:45,800 –> 00:06:48,110
با حالت بدون انتظار
166
00:06:48,110 –> 00:06:50,780
برویم تا بتوانیم شناسه فرآیند را ببینیم و
167
00:06:50,780 –> 00:06:52,580
اکنون باید مسیر برنامه ام را ارائه دهم
168
00:06:52,580 –> 00:06:54,289
بنابراین و اینجا دارم برای
169
00:06:54,289 –> 00:06:56,870
ارائه مسیر مفسر خط فرمان
170
00:06:56,870 –> 00:06:59,750
به طور کلی در سیستم های یونیکس
171
00:06:59,750 –> 00:07:02,000
مسیر دستور و مفسر خط فرمان
172
00:07:02,000 –> 00:07:06,310
دارای اسلش USR اسلش H است و
173
00:07:06,310 –> 00:07:09,190
سپس دستور واقعی من که Ellis است
174
00:07:09,190 –> 00:07:10,759
و این همان چیزی است
175
00:07:10,759 –> 00:07:12,710
که من در حال دریافت آن هستم. شناسه فرآیند
176
00:07:12,710 –> 00:07:14,900
به عنوان خروجی و اگر من یک کلید زمان فروپاشی
177
00:07:14,900 –> 00:07:17,090
را نگه دارم، همچنان شناسههای مختلف فرآیند دریافت میکنم،
178
00:07:17,090 –> 00:07:19,490
بنابراین بله، به این
179
00:07:19,490 –> 00:07:21,110
ترتیب، کسی که تخمگذاری نشده و کار میکند،
180
00:07:21,110 –> 00:07:23,509
به سادگی در فرآیند e اسپاون میشود و فقط
181
00:07:23,509 –> 00:07:25,699
با شناسه فرآیند برمیگردد، بنابراین
182
00:07:25,699 –> 00:07:27,710
در نهایت ما قرار بود در مورد ماژول فرآیند فرعی صحبت کنیم،
183
00:07:27,710 –> 00:07:29,840
بنابراین این ماژول زیر فرآیند
184
00:07:29,840 –> 00:07:32,210
راه های قدرتمندتری برای
185
00:07:32,210 –> 00:07:34,430
مدیریت و برقراری ارتباط با این
186
00:07:34,430 –> 00:07:36,199
فرآیندهای فرعی که وظیفه
187
00:07:36,199 –> 00:07:39,620
اجرای دستورات پوسته ما را بر عهده دارند ارائه می دهد، بنابراین
188
00:07:39,620 –> 00:07:41,569
API اصلی این ماژول فرعی این است
189
00:07:41,569 –> 00:07:44,780
که دارای یک عملکرد است. به نام run و کلاسی
190
00:07:44,780 –> 00:07:48,169
به نام P open بنابراین تابع run
191
00:07:48,169 –> 00:07:50,210
مسئول اجرای هر دستور پوسته است
192
00:07:50,210 –> 00:07:52,669
و منتظر می ماند تا
193
00:07:52,669 –> 00:07:54,289
کامل شود و سپس
194
00:07:54,289 –> 00:07:57,320
چیزی به نام یک
195
00:07:57,320 –> 00:08:00,590
شی کلاس کامل فرآیند را برمی گرداند، بنابراین نمونه فرآیند کامل
196
00:08:00,590 –> 00:08:02,570
همان چیزی است که به عنوان خروجی دریافت می کنید.
197
00:08:02,570 –> 00:08:04,610
از این تابع خاص و
198
00:08:04,610 –> 00:08:07,039
نکته جالب در مورد تابع run
199
00:08:07,039 –> 00:08:09,620
این است که فقط در پایتون 3.5 اضافه شده است،
200
00:08:09,620 –> 00:08:14,590
بنابراین قبل از pi 30.5 آنچه شما داشتید
201
00:08:14,590 –> 00:08:17,599
چندین توابع برای انجام همان کار بود
202
00:08:17,599 –> 00:08:20,539
که اجرا می تواند به تنهایی انجام دهد بنابراین در آنجا
203
00:08:20,539 –> 00:08:22,250
چیزی به نام فراخوانی اضافه می کنید. تابع و
204
00:08:22,250 –> 00:08:24,349
سپس یک بررسی تابع خروجی بررسی تابع فراخوانی
205
00:08:24,349 –> 00:08:26,539
و همه اینها به جز همه اینها
206
00:08:26,539 –> 00:08:28,370
را می توان با استفاده از یک
207
00:08:28,370 –> 00:08:29,930
تابع اجرا انجام داد، به دلیل تعداد
208
00:08:29,930 –> 00:08:32,419
آرگومان هایی که به گونه ای انجام می شود وقتی
209
00:08:32,419 –> 00:08:34,610
می گویید تابع کاملاً همه کاره برای
210
00:08:34,610 –> 00:08:38,120
اجرای دستورات پوسته و اگر شما به
211
00:08:38,120 –> 00:08:40,159
استفاده از هر یک از این توابع
212
00:08:40,159 –> 00:08:42,229
فکر می کنید، پس باید سعی کنید از
213
00:08:42,229 –> 00:08:44,360
استفاده از آنها خودداری کنید زیرا آنها اکنون بخشی
214
00:08:44,360 –> 00:08:46,520
از API قدیمی هستند که نباید
215
00:08:46,520 –> 00:08:48,230
استفاده شوند اگرچه hey هنوز پشتیبانی می شوند،
216
00:08:48,230 –> 00:08:52,730
اما شما نباید از آنها استفاده کنید و بله،
217
00:08:52,730 –> 00:08:54,320
بنابراین موضوع این است که ما
218
00:08:54,320 –> 00:08:56,960
تابع داریم و سپس کلاس باز DP داریم،
219
00:08:56,960 –> 00:08:59,020
بنابراین کلاس دانش آموز کلاسی برای
220
00:08:59,020 –> 00:09:02,240
اجرای انعطاف پذیر یک دستور در یک
221
00:09:02,240 –> 00:09:04,930
فرآیند جدید است، بنابراین اساساً عملکرد داخلی اجرا می شود
222
00:09:04,930 –> 00:09:07,520
. با استفاده از کلاس باز P
223
00:09:07,520 –> 00:09:10,700
برای انجام هر نوع اجرای
224
00:09:10,700 –> 00:09:14,270
دستورات پوسته خود جالب است که
225
00:09:14,270 –> 00:09:18,110
تابع باز ماژول های سیستم عامل نیز از
226
00:09:18,110 –> 00:09:20,540
کلاس زیر فرآیند نقطه p باز برای
227
00:09:20,540 –> 00:09:24,380
اجرای دستورات پوسته استفاده می کند، بنابراین اکنون
228
00:09:24,380 –> 00:09:26,570
اجازه دهید بدون هیچ تاخیری با
229
00:09:26,570 –> 00:09:28,970
تابع run شروع کنیم. و سعی کنید ببینید چه کاری
230
00:09:28,970 –> 00:09:31,610
می تواند به درستی انجام دهد، بنابراین اجازه دهید ابتدا با
231
00:09:31,610 –> 00:09:34,610
وارد کردن ماژول فرآیند فرعی شروع کنم
232
00:09:34,610 –> 00:09:37,670
و اجازه دهید سعی کنیم به
233
00:09:37,670 –> 00:09:40,190
امضای دختر و تابع زیر فرآیند نگاه کنیم،
234
00:09:40,190 –> 00:09:42,740
بنابراین آرگومان اول P کمان های باز نامیده می شود
235
00:09:42,740 –> 00:09:44,260
و سپس ما چند پارامتر دیگر در
236
00:09:44,260 –> 00:09:46,400
آنجا داریم، بنابراین اولین چیز
237
00:09:46,400 –> 00:09:48,440
چند کانال است که می تواند یک رشته
238
00:09:48,440 –> 00:09:50,720
یا لیستی از رشته ها باشد، وقتی یک
239
00:09:50,720 –> 00:09:52,130
رشته است، باید نام یک برنامه باشد
240
00:09:52,130 –> 00:09:54,290
و زمانی که یک لیست رشته است. سپس
241
00:09:54,290 –> 00:09:56,570
میتوانید آرگومانهایی را که
242
00:09:56,570 –> 00:09:58,160
میخواهید با آن برنامه اضافه کنید، ارائه کنید، بنابراین اجازه دهید
243
00:09:58,160 –> 00:10:00,440
با یک مثال به شما نشان دهم که
244
00:10:00,440 –> 00:10:02,360
دستور من LS است، بنابراین اجازه دهید
245
00:10:02,360 –> 00:10:03,890
آن را اجرا کنم، بنابراین ببینید که من هر
246
00:10:03,890 –> 00:10:06,710
نمونه از کلاس فرآیند تکمیل شده را دریافت میکنم. و
247
00:10:06,710 –> 00:10:08,990
کد برگشتی 0 است که به این معنی است که
248
00:10:08,990 –> 00:10:11,270
فرآیند من با این کد وضعیت 0 خارج شد،
249
00:10:11,270 –> 00:10:13,190
یعنی همه چیز خوب پیش رفت
250
00:10:13,190 –> 00:10:14,930
و می بینید که من خروجی را دریافت نمی کنم و کمی بعد
251
00:10:14,930 –> 00:10:17,270
آن را بررسی خواهیم کرد،
252
00:10:17,270 –> 00:10:20,060
اما قبل از آن اجازه دهید فقط نگاه کنیم. در
253
00:10:20,060 –> 00:10:22,790
یک دستور دیگر که مثلاً
254
00:10:22,790 –> 00:10:26,180
پایتون 3 تست نقطه py است، فرض کنید میخواهم
255
00:10:26,180 –> 00:10:28,840
این دستور را اجرا کنم، بنابراین در
256
00:10:28,840 –> 00:10:31,250
مکان فعلیام چیزی افت ولتاژ
257
00:10:31,250 –> 00:10:33,680
py دارم، بنابراین باید درست اجرا شود، بنابراین اجازه
258
00:10:33,680 –> 00:10:35,510
دهید آن را اجرا کنم و ببینم که من هستم
259
00:10:35,510 –> 00:10:37,580
خطای دریافت فایل پیدا نشد چرا چون
260
00:10:37,580 –> 00:10:40,880
فکر می کنم که پایتون 3 اسپیس تست یا
261
00:10:40,880 –> 00:10:43,250
py نام برنامه من است اما در
262
00:10:43,250 –> 00:10:45,230
واقع نام برنامه من پایتون 3 است و
263
00:10:45,230 –> 00:10:47,840
تست نقطه py فقط یک استدلال است، بنابراین برای
264
00:10:47,840 –> 00:10:49,640
این نوع موارد باید چه چیزی را انجام دهید. انجام دهید این
265
00:10:49,640 –> 00:10:52,820
است که باید لیستی از s را ارسال کنید tring مانند
266
00:10:52,820 –> 00:10:57,200
این پایتون 3 و سپس dot py را به درستی تست کنید
267
00:10:57,200 –> 00:10:59,710
تا به این ترتیب درست اجرا شود و
268
00:10:59,710 –> 00:11:02,480
بله، بنابراین به این صورت می توانید
269
00:11:02,480 –> 00:11:05,540
با ارائه یک رشته یا لیستی از
270
00:11:05,540 –> 00:11:07,700
رشته ها دستورات را اجرا کنید و اکنون اجازه دهید ببینیم چگونه می
271
00:11:07,700 –> 00:11:08,000
272
00:11:08,000 –> 00:11:09,910
توانیم خروجی چگونه
273
00:11:09,910 –> 00:11:13,100
خروجی اجرای دستور پوسته خود را بخوانیم،
274
00:11:13,100 –> 00:11:16,820
بنابراین قبل از پایتون 3.7، فرض کنید
275
00:11:16,820 –> 00:11:20,120
پایتون 3.6 یا 3.5 یا کمتر است، سپس
276
00:11:20,120 –> 00:11:22,010
برای خواندن
277
00:11:22,010 –> 00:11:25,340
خروجی فرمان پوسته خود چه کاری باید انجام دهید تا برای
278
00:11:25,340 –> 00:11:28,670
آن زیر را انجام دهید. -process dot run
279
00:11:28,670 –> 00:11:31,520
فرض کنید دستور ما هنوز LS است و سپس
280
00:11:31,520 –> 00:11:34,340
باید انجام دهید خروجی استاندارد دارای TD o UT
281
00:11:34,340 –> 00:11:36,980
است این نام یک متغیر پارامتر است
282
00:11:36,980 –> 00:11:40,550
تا لوله نقطه فرعی را به عنوان
283
00:11:40,550 –> 00:11:42,190
مقدار ارسال کند، بنابراین آنچه اتفاق می افتد این است که
284
00:11:42,190 –> 00:11:45,470
لوله زیرپردازنده باز می شود. یک لوله به
285
00:11:45,470 –> 00:11:47,570
جریان استاندارد که به سادگی به این معنی است که
286
00:11:47,570 –> 00:11:50,000
هر خروجی توسط
287
00:11:50,000 –> 00:11:52,550
آن فرآیند خاص تولید می شود
288
00:11:52,550 –> 00:11:54,920
که برای برنامه شما در دسترس خواهد بود و در دسترس شما خواهد بود،
289
00:11:54,920 –> 00:11:57,740
بنابراین اگر من فقط سعی کنم
290
00:11:57,740 –> 00:11:59,780
این نگاه را اجرا کنم، یک
291
00:11:59,780 –> 00:12:02,960
مقدار بیشتر در اینجا دریافت می کنیم. که s t نامیده می شود o dou
292
00:12:02,960 –> 00:12:05,360
T که حاوی نتیجه
293
00:12:05,360 –> 00:12:08,570
اجرای دستور پوسته من است، بنابراین اگر من فقط سعی کردم
294
00:12:08,570 –> 00:12:11,120
آن را بخوانم، اجازه دهید چیزی
295
00:12:11,120 –> 00:12:17,089
شبیه به این نتیجه را انجام دهم، بنابراین نقطه
296
00:12:17,089 –> 00:12:21,770
STD o UT را دریافت می کنم و من این را دریافت می کنم و
297
00:12:21,770 –> 00:12:24,050
این یک رشته بایت است. من باید
298
00:12:24,050 –> 00:12:26,180
آن را رمزگشایی کنم تا آن را به رشته تبدیل کنم و
299
00:12:26,180 –> 00:12:29,660
سپس می توانم به سادگی آن را چاپ کنم تا در
300
00:12:29,660 –> 00:12:32,540
قالب چاپ شده به دست بیاورم، بنابراین از این طریق می
301
00:12:32,540 –> 00:12:35,030
توانیم خروجی اجرای دستور پوسته خود را بخوانیم،
302
00:12:35,030 –> 00:12:37,670
بنابراین اینطوری کار می کند و
303
00:12:37,670 –> 00:12:40,100
حالا بیایید بگوییم هنگام اجرای چیزی خطایی وجود داشت،
304
00:12:40,100 –> 00:12:42,530
به عنوان مثال، اجازه دهید من
305
00:12:42,530 –> 00:12:44,480
فقط سعی کنم اجرا کنم، اجازه دهید با
306
00:12:44,480 –> 00:12:47,300
دستور RM X Y Z شروع کنم، بنابراین سعی می
307
00:12:47,300 –> 00:12:49,790
کند چیزی به نام X Y Z را از
308
00:12:49,790 –> 00:12:51,140
فهرست کاری فعلی من حذف کند، اما
309
00:12:51,140 –> 00:12:53,270
چیزی به نام X Y Z در اینجا وجود ندارد، بنابراین
310
00:12:53,270 –> 00:12:55,400
باید فقط آن را پرتاب کند. یک L بنابراین در این صورت
311
00:12:55,400 –> 00:12:58,640
اجازه دهید من فقط سعی کنم این را اجرا کنم و اوکی، بنابراین
312
00:12:58,640 –> 00:13:00,110
اکنون یک چیزی که می توانید در اینجا متوجه شوید این
313
00:13:00,110 –> 00:13:01,640
است که ما در حال دریافت خطای عدم یافتن فایل هستیم
314
00:13:01,640 –> 00:13:03,260
زیرا نباید آن را به
315
00:13:03,260 –> 00:13:05,300
این شکل پاس می کردم، باید آن را به
316
00:13:05,300 –> 00:13:11,810
این شکل پاس می کردم. بنابراین ما در حال گرفتن برخی از
317
00:13:11,810 –> 00:13:13,970
نتایج بنابراین اجازه دهید من فقط آن را اینگونه
318
00:13:13,970 –> 00:13:16,010
قرار دهم تا نتیجه را بگیریم و
319
00:13:16,010 –> 00:13:19,400
کد نوشته شده 0 نباشد بلکه 1 باشد و
320
00:13:19,400 –> 00:13:21,060
کد برگشتی 1 به این معنی است که مجموع
321
00:13:21,060 –> 00:13:23,070
اتفاق افتاده اتفاق بدی افتاده است و
322
00:13:23,070 –> 00:13:24,870
به همین دلیل است که خروجی استاندارد
323
00:13:24,870 –> 00:13:27,750
چیزی نیست جز اینکه دیگر من میخواهم
324
00:13:27,750 –> 00:13:29,490
خطا را نیز درست بدانم، بنابراین اگر
325
00:13:29,490 –> 00:13:30,810
میخواهید خطا را نیز بدانید،
326
00:13:30,810 –> 00:13:35,730
باید این کار را انجام دهید که stderr برابر با sub
327
00:13:35,730 –> 00:13:37,590
processed یا pipe است، بنابراین همان
328
00:13:37,590 –> 00:13:41,190
چیزی است که دوباره سعی میکنید
329
00:13:41,190 –> 00:13:43,470
اطلاعات را از فرآیند دیگر جریان دهید.
330
00:13:43,470 –> 00:13:45,300
فرآیندی که دستور را برای
331
00:13:45,300 –> 00:13:47,610
برنامه پایتون شما اجرا می کند و ببینید
332
00:13:47,610 –> 00:13:48,720
که ما خطای استاندارد را دریافت می کنیم
333
00:13:48,720 –> 00:13:50,820
که این است که نمی تواند XYZ را حذف کند
334
00:13:50,820 –> 00:13:51,960
زیرا چنین فایل یا
335
00:13:51,960 –> 00:13:54,600
دایرکتوری خوبی وجود ندارد بنابراین به این ترتیب
336
00:13:54,600 –> 00:13:57,720
می توانیم یک مورد دیگر را بخوانیم. ویژگیای که
337
00:13:57,720 –> 00:14:00,570
در اینجا داریم این است که فرض کنید
338
00:14:00,570 –> 00:14:03,480
نمیخواهید دو فیلد متفاوت برای
339
00:14:03,480 –> 00:14:05,820
دریافت خروجی از اجرای فرمان پوسته داشته باشید
340
00:14:05,820 –> 00:14:08,520
، فرض کنید میخواهید
341
00:14:08,520 –> 00:14:12,780
این اطلاعات را مستقیماً در
342
00:14:12,780 –> 00:14:16,380
مقدار st dou T خود دریافت کنید.
343
00:14:16,380 –> 00:14:18,240
می توانید این کار را انجام دهید این است که می توانید لوله را با
344
00:14:18,240 –> 00:14:21,030
SG bo UT برای مقدار خطای استاندارد خود جایگزین کنید
345
00:14:21,030 –> 00:14:23,280
و سپس آن را در
346
00:14:23,280 –> 00:14:25,620
خروجی استاندارد فقط در خطای استاندارد دریافت خو