рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

, , ( )

рдПрдХ рджреБрд░реНрд▓рдн рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реИред рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо (рдЙрдкрдпреЛрдЧрд┐рддрд╛) рд╡рд╣реА рдХрд░реЗрдЧрд╛ рдЬреЛ рд╣рдо рдЗрд╕рд╕реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╕реНрд╡рдпрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдп рдХреИрд╕реЗ рдкреНрд░рдЧрддрд┐ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде, рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд▓реЗрдЦ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдиреБрднрд╡реА рд▓реЛрдЧ рднреА рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╛рдПрдВрдЧреЗред

рд╡рд┐рд╖рдп рднреА рдЖрджрд┐рдо рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рд╣реИ рдЬреЛ рдЕрд░реНрде рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдХрд╛рдо рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдЪрд░


рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рддрд░реАрдХрд╛ рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдХрдИ рдРрд╕реЗ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рд▓рд┐рдЦрддрд╛ рд╣реИред
 #!/bin/bash #      EMAIL=example@gmail.com echo "  : $EMAIL" 

рдпрд╣ рддрд░реАрдХрд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдмрд┐рдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЙрд╕реЗ рдХреНрдпрд╛ рдФрд░ рдХрд╣рд╛рдБ рджрд░реНрдЬ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╕рдм рдПрдХ рдЬрдЧрд╣ рдкрд░ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ ред рдЖрдк рдЗрд╕реЗ рд╕реЛрд░реНрд╕ рдХрдорд╛рдВрдб рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рдорд┐рд▓рддрд╛ рд╣реИ:
 #!/bin/bash source ./config.cfg echo "  : $EMAIL" 

EMAIL=example@gmail.com рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, EMAIL=example@gmail.com рд▓рд╛рдЗрди EMAIL=example@gmail.com рди рднреВрд▓реЗрдВ

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк


рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдбреЗрдЯрд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЪрд░ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: $ 0 - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо, $ 1 - рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░, $ 2 - рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░, рдЖрджрд┐ рджреЛ рд╕рд╣рд╛рдпрдХ рдЪрд░ рднреА рд╣реИрдВ: $ # рдореЗрдВ рддрд░реНрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ; $ @ рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рд╕рднреА рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рд╣реИрдВред

 #!/bin/bash #      for n in $@ do echo "$n" done 



рдкреНрд░рд╢реНрди рдФрд░ рдкреБрд╖реНрдЯрд┐



рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдХрдИ рд▓реЛрдЧ рдЗрд╕ рд╕рд╡рд╛рд▓ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдВрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ... рдареАрдХ рд╣реИ, рдЖрдк рдЦреБрдж рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
 #!/bin/bash echo -n "? (y/n) " read item case "$item" in y|Y) echo " ┬лy┬╗, ..." ;; n|N) echo " ┬лn┬╗, ..." exit 0 ;; *) echo "  .    ..." ;; esac 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ "D" рдЕрдХреНрд╖рд░ рдмрдбрд╝рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рднреА рджрд░реНрдЬ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ "рдбреА" рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ред

рдареАрдХ рд╣реИ / рд╡рд┐рдлрд▓


рдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рд╕реНрдерд┐рддрд┐ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЖрдкрд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред
 #!/bin/bash SETCOLOR_SUCCESS="echo -en \\033[1;32m" SETCOLOR_FAILURE="echo -en \\033[1;31m" SETCOLOR_NORMAL="echo -en \\033[0;39m" echo -e " ..." # ,    rm test_file if [ $? -eq 0 ]; then $SETCOLOR_SUCCESS echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]" $SETCOLOR_NORMAL echo else $SETCOLOR_FAILURE echo -n "$(tput hpa $(tput cols))$(tput cub 6)[fail]" $SETCOLOR_NORMAL echo fi 

рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ:

рдЕрдЪреНрдЫреЗ рд▓реЛрдЧреЛрдВ рдиреЗ рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рдкреНрд░рдЧрддрд┐ рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд▓рд┐рдЦрд╛ред рдореИрдВ рдЦрд╝реБрд╢реА рд╕реЗ рд▓рд┐рдВрдХ рд╕рд╛рдЭрд╛ рдХрд░реВрдБрдЧрд╛ред

рдЙрдкрд░реЛрдХреНрдд рд▓рд┐рдВрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
 #!/bin/bash red=$(tput setf 4) green=$(tput setf 2) reset=$(tput sgr0) toend=$(tput hpa $(tput cols))$(tput cub 6) echo -e " ..." # ,    rm test_file if [ $? -eq 0 ]; then echo -n "${green}${toend}[OK]" else echo -n "${red}${toend}[fail]" fi echo -n "${reset}" echo 


pseudographics


рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЗ рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИ: рд╕рдВрд╡рд╛рдж ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВред
 sudo apt-get install dialog 

рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ:
 dialog --title "  " --msgbox "\n  - !" 6 50 

рдпрд╣рд╛рдБ рдПрдХ рдкреНрд░рдЧрддрд┐ рд╕рдВрд╡рд╛рдж рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
 #!/bin/sh ( c=10 while [ $c -ne 110 ] do echo $c ((c+=10)) sleep 1 done ) | dialog --title "    " --gauge "Please wait ...." 10 60 0 clear 

рд╕реНрдХреНрд░реАрди рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓реЗрдВ рддрд╛рдХрд┐ рдиреАрд▓реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рди рдЫреЛрдбрд╝реЗрдВред рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрдИ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИред рдореБрдЦреНрдп рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рд╕рдВрд╡рд╛рдж рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╡реНрд╣рд┐рдкрдЯреЗрд▓ рд╣реИ , рдЬреЛ рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рд╣реИред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдВрдХ рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
http://unstableme.blogspot.com/2009/12/linux-dialog-utility-short-tutorial.html
http://www.cc-c.de/german/linux/linux-dialog.php

рдЬреАрдпреВрдЖрдИ


рдпрджреНрдпрдкрд┐ рдЬреАрдпреВрдЖрдИ рдХреЗ рдкреНрд░рдмрд▓ рд╡рд┐рд░реЛрдзреА рд╣реИрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрд╡рд╛рдж kdialog рдХрдорд╛рдВрдб (рдпрджрд┐ KDE рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рд╢реЗрд▓ рд╣реИ), рдпрд╛ gdialog рдФрд░ zenity (Gnome рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдлреЙрд░реНрдо:
 kdialog --password ",   :" 

рдпрд╛
 gdialog --password ",   :" 

рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗрдбреАрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реИ:
 kdialog --question "  ?" rc=$? if [ "${rc}" == "0" ]; then echo " yes" else echo " no" fi 

рдФрд░ рд╕реВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП:
 #!/bin/bash name=$(gdialog --title " " --inputbox "  :" 50 60 2>&1) echo " : $name" 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рджреЛрд╖ рдЗрд╕рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрд╕реНрдХрдЯреЙрдк рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдкреНрд░рддрд┐ рд▓рдЧрд╛рд╡ рд╣реИред рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди, рдлрд┐рд░ рднреА, рдпрд╣ рдХрд┐рд╕реА рджрд┐рди рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИред

рд▓рд┐рдВрдХ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА:
http://pwet.fr/man/linux/commandes/kdialog
http://linux.about.com/library/cmd/blcmdl1_gdialog.htm
http://www.techrepublic.com/blog/opensource/gui-scripting-in-bash/1667

PS рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...

UPD: "OK / FAIL" рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдХреЛрдб рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
UPD2: рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡реИрд░рд┐рдПрдмрд▓ рдЕрдиреБрднрд╛рдЧ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

рджреВрд╕рд░рд╛ рднрд╛рдЧ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдЖ рд╣реИред

Source: https://habr.com/ru/post/In126701/


All Articles