﻿{"id":34,"date":"2013-04-11T02:02:13","date_gmt":"2013-04-10T22:02:13","guid":{"rendered":"http:\/\/fewit.ru\/?p=34"},"modified":"2013-06-30T21:41:06","modified_gmt":"2013-06-30T17:41:06","slug":"%d0%be%d1%81%d0%bd%d0%be%d0%b2%d1%8b-bash-%d1%87%d0%b0%d1%81%d1%82%d1%8c-2","status":"publish","type":"post","link":"https:\/\/fewit.ru\/?p=34","title":{"rendered":"\u041e\u0441\u043d\u043e\u0432\u044b BASH. \u0427\u0430\u0441\u0442\u044c 2."},"content":{"rendered":"<p>\u041e\u0441\u043d\u043e\u0432\u044b BASH. \u0427\u0430\u0441\u0442\u044c 2.<br \/>\n\u0418\u0437\u0432\u0438\u043d\u044f\u044e\u0441\u044c \u0437\u0430 \u0442\u0430\u043a\u0443\u044e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0442\u044c\u044f\u043c\u0438, \u043d\u043e \u0441\u0435\u0441\u0441\u0438\u044f \u0434\u0430\u0435\u0442 \u043e \u0441\u0435\u0431\u0435 \u0437\u043d\u0430\u0442\u044c \u0432 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \ud83d\ude42<br \/>\n\u0412\u0441\u0435\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0437\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u044f, \u043a\u0440\u0438\u0442\u0438\u043a\u0443 \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u043e\u0437\u0432\u0443\u0447\u0435\u043d\u044b \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445 \u043a \u043f\u0440\u043e\u0448\u043b\u043e\u0439 <a href=\"http:\/\/habrahabr.ru\/blogs\/linux\/47163\/\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a>.<br \/>\n\u042d\u0442\u0430 \u0447\u0430\u0441\u0442\u044c, \u043a\u0430\u043a \u0438 \u043e\u0431\u0435\u0449\u0430\u043b, \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u0446\u0438\u043a\u043b\u0430\u043c, \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434.<br \/>\n\u041d\u0430\u0447\u043d\u0435\u043c.<br \/><!--more--><br \/>\n<a name=\"habracut\"><\/a><\/p>\n<h3>\u0426\u0438\u043a\u043b\u044b. \u0426\u0438\u043a\u043b for-in.<\/h3>\n<p>\n\u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 for-in \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u043c \u0432 \u0441\u043f\u0438\u0441\u043a\u0435. \u041a\u0430\u0436\u0434\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439.<br \/>\n\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<br \/>\n<code>for \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f in \u0441\u043f\u0438\u0441\u043e\u043a_\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<br \/>\ndo<br \/>\n \u043a\u043e\u043c\u0430\u043d\u0434\u044b<br \/>\ndone<br \/>\n<\/code><br \/>\n\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<blockquote><p><code>#!\/bin\/bash<br \/>\nfor i in 0 1 2 3 4 #\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 $i \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442 0 \u0434\u043e 4 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e<br \/>\ndo<br \/>\n echo &quot;Console number is $i&quot; &gt;&gt; \/dev\/pts\/$i #\u041f\u0438\u0448\u0435\u043c \u0432 \u0444\u0430\u0439\u043b \/dev\/pts\/$i(\u0444\u0430\u0439\u043b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430) \u0441\u0442\u0440\u043e\u043a\u0443 &quot;Console number is $i&quot;<br \/>\ndone #\u0446\u0438\u043a\u043b \u043e\u043a\u043e\u043d\u0447\u0435\u043d<br \/>\nexit 0<br \/>\n<\/code><\/p><\/blockquote>\n<p>\n\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0432 \u043f\u0435\u0440\u0432\u044b\u0445 5 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u043e\u043b\u044f\u0445(\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430\u0445) \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u0441 \u0435\u0451 \u043d\u043e\u043c\u0435\u0440\u043e\u043c. \u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e $i \u043f\u043e\u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438 \u0432 \u0446\u0438\u043a\u043b\u0435 \u0438\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u044d\u0442\u043e\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439<\/p>\n<h3>\u0426\u0438\u043a\u043b\u044b. \u0426\u0438\u043a\u043b while.<\/h3>\n<p>\n\u0426\u0438\u043a\u043b while \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u0446\u0438\u043a\u043b\u0430 for-in \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434, \u043f\u043e\u043a\u0430 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u0441\u0442\u0438\u043d\u043d\u043e( \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 = 0).<br \/>\n\u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439:<br \/>\n<code>while \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0449\u0430\u044f \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430<br \/>\ndo<br \/>\n\u043a\u043e\u043c\u0430\u043d\u0434\u044b<br \/>\ndone<br \/>\n<\/code><br \/>\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0431\u043e\u0442\u044b \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435:<\/p>\n<blockquote><p><code>#!\/bin\/bash<br \/>\nagain=yes #\u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 &quot;yes&quot; \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 again<br \/>\nwhile [ &quot;$again&quot; = &quot;yes&quot; ] #\u0411\u0443\u0434\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0446\u0438\u043a\u043b, \u043f\u043e\u043a\u0430 $again \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0432\u043d\u043e &quot;yes&quot;<br \/>\n do<br \/>\n echo &quot;Please enter a name:&quot;<br \/>\n read name<br \/>\n echo &quot;The name you entered is $name&quot;<\/p>\n<p>echo &quot;Do you wish to continue?&quot;<br \/>\n read again<br \/>\ndone<br \/>\necho &quot;Bye-Bye&quot;<br \/>\n<\/code><\/p><\/blockquote>\n<p>\n\u0410 \u0442\u0435\u043f\u0435\u0440\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043a\u0440\u0438\u043f\u0442\u0430:<\/p>\n<blockquote><p><code>ite@ite-desktop:~$ .\/bash2_primer1.sh<br \/>\nPlease enter a name:<br \/>\nite<br \/>\nThe name you entered is ite<br \/>\nDo you wish to continue?<br \/>\nyes<br \/>\nPlease enter a name:<br \/>\nmihail<br \/>\nThe name you entered is mihail<br \/>\nDo you wish to continue?<br \/>\nno<br \/>\nBye-Bye<br \/>\n<\/code><\/p><\/blockquote>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u043c \u0446\u0438\u043a\u043b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043c\u044b \u043d\u0435 \u0432\u0432\u0435\u0434\u0435\u043c \u0447\u0442\u043e-\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0435 \u043e\u0442 \u00abyes\u00bb. \u041c\u0435\u0436\u0434\u0443 do \u0438 done \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0438 \u0442.\u043f., \u0432\u0441\u0435 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u0441\u044f \u0432 \u0446\u0438\u043a\u043b\u0435.\u041d\u043e \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u044b\u043c \u0441 \u044d\u0442\u0438\u043c \u0446\u0438\u043a\u043b\u043e\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0432 \u043d\u0451\u043c \u043a\u0430\u043a\u0443\u044e-\u043b\u0438\u0431\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0432 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0446\u0438\u043a\u043b.<br \/>\n\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u0438. \u041f\u043e\u0441\u043b\u0435 while, \u043a\u0430\u043a \u0438 \u0432 \u0443\u0441\u043b\u043e\u0432\u043d\u043e\u043c \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0435 if-then-else \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043b\u044e\u0431\u043e\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430, \u0438 \u0446\u0438\u043a\u043b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u0441\u044f \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 = 0! \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &quot;[&quot; \u0430\u043d\u0430\u043b\u043e\u0433 \u043a\u043e\u043c\u0430\u043d\u0434\u044b test, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0441\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0435\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u043b\u0438.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u043f\u0440\u0438\u043c\u0435\u0440, \u044f \u0432\u0437\u044f\u043b \u0435\u0433\u043e \u0438\u0437 \u043a\u043d\u0438\u0433\u0438 Advanced Bash Scripting. \u0423\u0436 \u043e\u0447\u0435\u043d\u044c \u043e\u043d \u043c\u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f :), \u043d\u043e \u044f \u0435\u0433\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b. <b>\u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043c\u0441\u044f \u0441 \u0435\u0449\u0435 \u043e\u0434\u043d\u0438\u043c \u0442\u0438\u043f\u043e\u043c \u0446\u0438\u043a\u043b\u043e\u0432 UNTIL-DO<\/b>. \u042d\u0442\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u043e\u0433 \u0446\u0438\u043a\u043b\u0430 WHILE-DO, \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u043a\u0430 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043b\u043e\u0436\u043d\u043e.<br \/>\n\u0412\u043e\u0442 \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<blockquote><p><code>#!\/bin\/bash<br \/>\necho &quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c: &quot;<br \/>\nread dividend<br \/>\necho &quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043d\u0430\u043c\u0435\u043d\u0430\u0442\u0435\u043b\u044c: &quot;<br \/>\nread divisor<\/p>\n<p>dnd=$dividend #\u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 dividend \u0438 divisor,<br \/>\n #\u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u0438\u0445 \u0437\u043d\u0430\u043d\u0438\u044f \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0442.\u043a. \u043e\u043d\u0438 \u043d\u0430\u043c<br \/>\n #\u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f<br \/>\ndvs=$divisor<br \/>\nremainder=1<\/p>\n<p>until [ &quot;$remainder&quot; -eq 0 ]<br \/>\n do<br \/>\n let &quot;remainder = dividend % divisor&quot;<br \/>\n dividend=$divisor <br \/>\n divisor=$remainder<br \/>\ndone <\/p>\n<p>echo &quot;\u041d\u041e\u0414 \u0447\u0438\u0441\u0435\u043b $dnd \u0438 $dvs = $dividend&quot; <br \/>\n<\/code><\/p><\/blockquote>\n<p>\n\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430:<\/p>\n<blockquote><p><code>ite@ite-desktop:~$ .\/bash2_primer3.sh<br \/>\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c:<br \/>\n100<br \/>\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0437\u043d\u0430\u043c\u0435\u043d\u0430\u0442\u0435\u043b\u044c:<br \/>\n90<br \/>\n\u041d\u041e\u0414 \u0447\u0438\u0441\u0435\u043b 100 \u0438 90 = 10<br \/>\n<\/code><\/p><\/blockquote>\n<h3>\u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438<\/h3>\n<p>\n\u041a\u043e\u043c\u0430\u043d\u0434\u0430 let.<br \/>\n\u041a\u043e\u043c\u0430\u043d\u0434\u0430 let \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u0447\u0438\u0441\u043b\u0430\u043c\u0438 \u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438.<br \/>\n\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0434 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u043c\u0438 \u0447\u0438\u0441\u043b\u0430\u043c\u0438:<\/p>\n<blockquote><p><code>#!\/bin\/bash<br \/>\necho &quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 a: &quot;<br \/>\nread a<br \/>\necho &quot;\u0412\u0432\u0435\u0434\u0438\u0442\u0435 b: &quot;<br \/>\nread b<\/p>\n<p>let &quot;c = a + b&quot; #\u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435<br \/>\necho &quot;a+b= $c&quot;<br \/>\nlet &quot;c = a \/ b&quot; #\u0434\u0435\u043b\u0435\u043d\u0438\u0435<br \/>\necho &quot;a\/b= $c&quot;<br \/>\nlet &quot;c &lt;&lt;= 2&quot; #\u0441\u0434\u0432\u0438\u0433\u0430\u0435\u0442 c \u043d\u0430 2 \u0440\u0430\u0437\u0440\u044f\u0434\u0430 \u0432\u043b\u0435\u0432\u043e<br \/>\necho &quot;c \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043d\u0430 2 \u0440\u0430\u0437\u0440\u044f\u0434\u0430: $c&quot;<br \/>\nlet &quot;c = a % b&quot; # \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043e\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u044f a \u043d\u0430 b<br \/>\necho &quot;$a \/ $b. \u043e\u0441\u0442\u0430\u0442\u043e\u043a: $c &quot;<br \/>\n<\/code><\/p><\/blockquote>\n<p>\n\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f:<\/p>\n<blockquote><p><code>ite@ite-desktop:~$ .\/bash2_primer2.sh<br \/>\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 a:<br \/>\n123<br \/>\n\u0412\u0432\u0435\u0434\u0438\u0442\u0435 b:<br \/>\n12<br \/>\na+b= 135<br \/>\na\/b= 10<br \/>\nc \u043f\u043e\u0441\u043b\u0435 \u0441\u0434\u0432\u0438\u0433\u0430 \u043d\u0430 2 \u0440\u0430\u0437\u0440\u044f\u0434\u0430: 40<br \/>\n123 \/ 12. \u043e\u0441\u0442\u0430\u0442\u043e\u043a: 3<br \/>\n<\/code><\/p><\/blockquote>\n<p>\n\u041d\u0443 \u0432\u043e\u0442, \u043a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0433\u043e, \u0441\u043f\u0438\u0441\u043e\u043a \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439:<br \/>\n+ \u2014 \u0441\u043b\u043e\u0436\u0435\u043d\u0438\u0435<br \/>\n \u2014  \u2014 \u0432\u044b\u0447\u0438\u0442\u0430\u043d\u0438\u0435<br \/>\n* \u2014 \u0443\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435<br \/>\n\/ \u2014 \u0434\u0435\u043b\u0435\u043d\u0438\u0435<br \/>\n** \u2014 \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c<br \/>\n% \u2014 \u043c\u043e\u0434\u0443\u043b\u044c(\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u043c\u043e\u0434\u0443\u043b\u044e), \u043e\u0441\u0442\u0430\u0442\u043e\u043a \u043e\u0442 \u0434\u0435\u043b\u0435\u043d\u0438\u044f<br \/>\nlet \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044f \u043a\u043e\u043b-\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: a = a+b \u044d\u043a\u0432\u0438\u0432\u0430\u043b\u0435\u043d\u0442\u043d\u043e a +=b \u0438 \u0442.\u0434<\/p>\n<h3>\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u043c\u0438 \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 shell-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432<\/h3>\n<p>\n\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438.<\/p>\n<h5> \u041f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0442\u043e\u043a\u043e\u0432.<\/h5>\n<p>\n\u0412 bash(\u043a\u0430\u043a \u0438 \u043c\u043d\u043e\u0433\u0438\u0445 \u0434\u0440\u0443\u0433\u0438\u0445 \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430\u0445) \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0435 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u044b: 0 (stdin), 1 (stdout), 2 (stderr).<br \/>\nstdout \u2014 \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434. \u0421\u044e\u0434\u0430 \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432\u0441\u0435 \u0447\u0442\u043e \u0432\u044b\u0432\u043e\u0434\u044f\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<br \/>\nstdin \u2014 \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u0432\u043e\u0434. \u042d\u0442\u043e \u0432\u0441\u0435 \u0447\u0442\u043e \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u0442 \u044e\u0437\u0435\u0440 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438<br \/>\nstderr \u2014 \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 \u043e\u0448\u0438\u0431\u043e\u043a. <br \/>\n\u0414\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0441 \u044d\u0442\u0438\u043c\u0438 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440\u0430\u043c\u0438, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b: &gt; (\u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u044b\u0432\u043e\u0434\u0430), &lt; (\u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0432\u043e\u0434\u0430). \u041e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043c\u0438 \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<blockquote><p>cat \/dev\/random &gt; \/dev\/null<\/p><\/blockquote>\n<p> \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b cat \/dev\/random \u0432 \/dev\/null (\u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0431\u0435\u0441\u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u044f :)) ) \u0438\u043b\u0438<\/p>\n<blockquote><p>ls -la &gt; listing<\/p><\/blockquote>\n<p> \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0444\u0430\u0439\u043b listing \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 (\u0443\u0436\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u0435\u0439)<br \/>\n\u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0434\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432 \u0444\u0430\u0439\u043b(\u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 &quot;&gt;&quot; \u043e\u043d \u0437\u0430\u043c\u0435\u043d\u044f\u0442\u0435\u0441\u044f), \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043c\u0435\u0441\u0442\u043e &quot;&gt;&quot; \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c &quot;&gt;&gt;&quot;<\/p>\n<blockquote><p>sudo &lt; my_password<\/p><\/blockquote>\n<p> \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0441\u044c\u0431\u044b sudo \u0432\u0432\u0435\u0441\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044c, \u043e\u043d \u0432\u043e\u0437\u044c\u043c\u0435\u0442\u0441\u044f \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 my_password, \u043a\u0430\u043a \u0431\u0443\u0434\u0442\u043e \u0432\u044b \u0435\u0433\u043e \u0432\u0432\u0435\u043b\u0438 \u0441 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b.<br \/>\n\u0415\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0444\u0430\u0439\u043b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0448\u0438\u0431\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u043b\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c:<\/p>\n<blockquote><p>.\/program_with_error 2&gt; error_file<\/p><\/blockquote>\n<p> \u0446\u0438\u0444\u0440\u0430 2 \u043f\u0435\u0440\u0435\u0434 &quot;&gt;&quot; \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0441\u0435 \u0447\u0442\u043e \u043f\u043e\u043f\u0430\u0434\u0435\u0442 \u0432 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 2(stderr).<br \/>\n\u0415\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u0441\u0442\u0430\u0432\u0438\u0442\u044c stderr \u043f\u0438\u0441\u0430\u0442\u044c \u0432 stdout, \u0442\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434. \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<blockquote><p>.\/program_with_error 2&gt;&#038;1<\/p><\/blockquote>\n<p> \u0441\u0438\u043c\u0432\u043e\u043b &quot;&#038;&quot; \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0434\u0435\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0440 1(stdout)<br \/>\n(\u041f\u043e\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e stderr \u043f\u0438\u0448\u0435\u0442 \u043d\u0430 \u0442\u0443 \u043a\u043e\u043d\u0441\u043e\u043b\u044c, \u0432 \u043a\u043e\u0442\u0440\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c(\u0432\u0440\u0435\u043d\u0435\u0435 \u043f\u0438\u0448\u0435\u0442 \u043d\u0430 \u0434\u0438\u0441\u043f\u043b\u0435\u0439)).<\/p>\n<h5>2.\u041a\u043e\u043d\u0432\u0435\u0435\u0440\u044b.<\/h5>\n<p>\n\u041a\u043e\u043d\u0432\u0435\u0435\u0440 \u2014 \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0449\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u044e Bash. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u0439:<br \/>\n<code>\u043a\u043e\u043c\u0430\u043d\u0434\u04301 | \u043a\u043e\u043c\u0430\u043d\u0434\u0430 2 <\/code> \u2014 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b 1 \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442\u0441\u044f \u043d\u0430 \u0432\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 2<br \/>\n\u041a\u043e\u043d\u0432\u0435\u0435\u0440\u044b \u043c\u043e\u0436\u043d\u043e \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u0446\u0435\u043f\u043e\u0447\u043a\u0438 \u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<blockquote><p>ls -la | grep \u00abhash\u00bb |sort &gt; sortilg_list<\/p><\/blockquote>\n<p> \u0432\u044b\u0432\u043e\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b ls -la \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u0435 grep, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0442\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u0441\u0442\u0440\u0435\u0442\u0438\u0442\u0441\u044f \u0441\u043b\u043e\u0432\u043e hash, \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435 sort, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0438\u0448\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0444\u0430\u0439\u043b sorting_list. \u0412\u0441\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>\u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u043d\u0430 Bash \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438, \u043e\u0442\u0441\u044e\u0434\u0430 \u0438\u043d\u043e\u0433\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 stdout \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u043d\u0430 stdin \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0435, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0435\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d. \u0412 \u044d\u0442\u043e\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435 \u044f \u043f\u043e\u0441\u0442\u043e\u0440\u0430\u044e\u0441\u044c \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430. \u0414\u0443\u043c\u0430\u044e \u0447\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u044f \u043f\u0440\u0438\u0432\u0435\u043b \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0438 \u043c\u043e\u0436\u043d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.<\/p>\n<h5>1. \u041f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0432\u044b\u0432\u043e\u0434\u0430 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e.<\/h5>\n<p>\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0432\u044b\u0432\u043e\u0434 \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u0432 &#171; \u043a\u043e\u0432\u044b\u0447\u043a\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440<\/p>\n<blockquote><p><code>a = `echo &quot;qwerty&quot;`<br \/>\necho $a<br \/>\n<\/code><br \/>\n\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b: qwerty<\/p><\/blockquote>\n<p>\n\u041e\u0434\u043d\u0430\u043a\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0437\u0430\u0445\u043e\u0442\u0438\u0442\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439, \u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u0434\u043e\u043b\u0436\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043b\u044f \u043f\u043e\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e. \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439, \u043f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<blockquote><p><code>LIST=`find \/svn\/ -type d 2&gt;\/dev\/null| awk '{FS=&quot;\/&quot;} {print $4}'| sort|uniq | tr '\\n' ' '`<br \/>\nfor ONE_OF_LIST in $LIST<br \/>\ndo<br \/>\n svnadmin hotcopy \/svn\/$ONE_OF_LIST \/svn\/temp4backup\/$ONE_OF_LIST<br \/>\ndone<br \/>\n<\/code><\/p><\/blockquote>\n<p>\n\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0446\u0438\u043a\u043b for-do-done \u0434\u043b\u044f \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439 \u0432 \u043f\u0430\u043f\u043a\u0435 \/svn\/ \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b svnadmin hotcopy(\u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043d\u0438\u043a\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0430\u043a \u043f\u0440\u0438\u043c\u0435\u0440). \u041d\u0430\u0438\u0431\u043e\u043b\u044c\u0448\u0439 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u043a\u0430: <code>LIST=`find \/svn\/ -type d 2&gt;\/dev\/null| awk '{FS=&quot;\/&quot;} {print $4}'| sort|uniq | tr '\\n' ' '`<\/code> \u0412 \u043d\u0435\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 LIST \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b find, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438 awk, sort, uniq,tr(\u0432\u0441\u0435 \u044d\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u043c, \u0438\u0431\u043e \u044d\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f). \u0412 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 LIST \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u043d\u0430 \u0432\u0441\u0435\u0445 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0432 \u043f\u0430\u043f\u043a\u0435 \/svn\/ \u043f\u0433\u043e\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0445 \u0432 \u043e\u0434\u043d\u0443 \u0441\u0442\u0440\u043e\u043a\u0443(\u0434\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0435\u0451 \u0441\u0442\u0440\u0430\u0432\u0438\u0442\u044c \u0446\u0438\u043a\u043b\u0443.<\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u043d\u043e, \u0432\u0441\u0435 \u043d\u0435 \u0441\u043b\u043e\u0436\u043d\u043e, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u0441\u0432\u043e\u0438\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432. \u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u0441\u0442\u0430\u0442\u044c\u0438 \u0445\u043e\u0447\u0443 \u043f\u043e\u0436\u0435\u043b\u0430\u0442\u044c \u0443\u0434\u0430\u0447\u0438 \u0432 \u0438\u0437\u0443\u0447\u0435\u043d\u0438\u0438 BASH \u0438 Linux \u0432 \u0446\u0435\u043b\u043e\u043c. \u041a\u0440\u0438\u0442\u0438\u043a\u0430, \u043a\u0430\u043a \u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0432\u0435\u0449\u0435\u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0442\u0430\u043a\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c \u043a\u0430\u043a sed, awk. <\/p>\n<p>\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: http:\/\/habrahabr.ru\/post\/52871\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041e\u0441\u043d\u043e\u0432\u044b BASH. \u0427\u0430\u0441\u0442\u044c 2. \u0418\u0437\u0432\u0438\u043d\u044f\u044e\u0441\u044c \u0437\u0430 \u0442\u0430\u043a\u0443\u044e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0430\u0442\u044c\u044f\u043c\u0438, \u043d\u043e \u0441\u0435\u0441\u0441\u0438\u044f \u0434\u0430\u0435\u0442 \u043e \u0441\u0435\u0431\u0435 \u0437\u043d\u0430\u0442\u044c \u0432 \u0441\u0430\u043c\u044b\u0439 \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-34","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/fewit.ru\/index.php?rest_route=\/wp\/v2\/posts\/34","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fewit.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fewit.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fewit.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fewit.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=34"}],"version-history":[{"count":3,"href":"https:\/\/fewit.ru\/index.php?rest_route=\/wp\/v2\/posts\/34\/revisions"}],"predecessor-version":[{"id":51,"href":"https:\/\/fewit.ru\/index.php?rest_route=\/wp\/v2\/posts\/34\/revisions\/51"}],"wp:attachment":[{"href":"https:\/\/fewit.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=34"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fewit.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=34"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fewit.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=34"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}