рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдХрдВрд╕реЛрд▓ / рдмреИрд╢-рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдореЗрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рджреЗрдЦрддрд╛ рд╣реВрдВ

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдлрд┐рд▓реНрдореЗрдВ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рд╣реИ? рдореИрдВ - рд╣рд╛рдБ: "рдж рдмрд┐рдЧ рдмреИрдВрдЧ рдереНрдпреЛрд░реА", "рдж рдЖрдИрдЯреА рдХреНрд░рд╛рдЙрдб", рд╡рд┐рд╡рд┐рдз рдПрдиреАрдореЗ ... рдпрд╣ рд╕рдм рдмрд╣реБрдд рд╣реА рд╡реНрдпрд╕рдиреА рд╣реИред

рдпрд╣ рд╕рдм рд╕рд╛рдорд╛рди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдпрд░ mplayer рдХреЗ рдХрдВрд╕реЛрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред (рд▓рд╛рд▓-рдЖрдВрдЦреЛрдВ рдФрд░ рдЬреАрдпреВрдЖрдИ рдмрдирд╛рдо рдХрдВрд╕реЛрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрд▓реАрд╡рд░ рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП) рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдмреБрд░реА рдХрд┐рд╕реНрдордд рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдирдИ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рд▓рдВрдмреА рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рдХрд░рдиреА рд╣реЛрдЧреА:

 $ mplayer -ass -subcp cp1251 series_name_01_year_what_shit.mkv


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

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



рдЗрдВрдЯрд░рдлрд╝реЗрд╕



рдкрд╣рд▓реЗ, рдЖрдЗрдП рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рдЖрд╡рд░рдг рдореЗрдВ рдХреМрди рд╕рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рджреЛрд╣рд░реЗ рдЕрдВрдХреЛрдВ рдХреА рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХрд▓-рдЕрдВрдХ рдпрд╛ рддреАрди-рдЕрдВрдХреАрдп рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рджрд┐рдЦреЗрдЧрд╛, рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 $ cd ~ / series_name # рд╣рдо рдХрд╣рд╛рдБ рдФрд░ рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
 $ ls # рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдкрд░ рджреЗрдЦреЗрдВ
 serial_name_01_bla_bla.avi
 serial_name_01_bla_bla.srt
 serial_name_02_bla_bla.avi
 serial_name_02_bla_bla.srt
 ...
 $ рд╕реАрд░рд┐рдпрд▓ рд╕реЗрдЯ рдорд╛рд╕реНрдХ "рдХреНрд░рдо_рдирд╛рдо _ ?? _ _a_bla.avi" # рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ - "рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд╛рдо?"
 # рд╕реАрд░рд┐рдпрд▓ рд╕реЗрдЯ рд╡рд┐рдХрд▓реНрдк -subcp cp1251 # рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд▓реНрдк рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ - рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕рдХреЗ рд╕рд╛рде


рдЕрдм рджреЗрдЦреЛ:

  $ рд╕реАрд░рд┐рдпрд▓ рдЕрдЧрд▓реЗ # рд╢реБрд░реБрдЖрдд рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ
 01 рдПрдкрд┐рд╕реЛрдб рдЦреЗрд▓ рд░рд╣рд╛ рд╣реИ ...
 ...
 $ рд╕реАрд░рд┐рдпрд▓ рдЕрдЧрд▓реЗ # рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЪрд▓реЛ рдЖрдЧреЗ
 02 рдПрдкрд┐рд╕реЛрдб рдЦреЗрд▓ рд░рд╣рд╛ рд╣реИ ...
 ...
 $ рд╕реАрд░рд┐рдпрд▓ рдПрдХ рд╣реА # рдореИрдВрдиреЗ рдПрдХ рдордЬрд╛рдХрд┐рдпрд╛ рдкрд▓ рджреЗрдЦрд╛, рдореИрдВ рдЙрд╕реА рдПрдкрд┐рд╕реЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
 02 рдПрдкрд┐рд╕реЛрдб рдЦреЗрд▓ рд░рд╣рд╛ рд╣реИ ...
 ...
 $ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдПрдкрд┐рд╕реЛрдб 14 # рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрдкрд┐рд╕реЛрдб рдореЗрдВ рдХреВрджреЗрдВ
 14 рдПрдкрд┐рд╕реЛрдб рдЦреЗрд▓ рд░рд╣рд╛ рд╣реИ ...
 ...
 рд╕рдЪ рд╣реЛрддреЗ рд╣реБрдП $;  рдХрд░рддреЗ рд╣реИрдВ;  рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ n;  рдиреАрдВрдж 1;  рдХрд┐рдпрд╛;  # рдмрд┐рдирд╛ рд░реБрдХреЗ


рдФрд░ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдкрд┐рд╕реЛрдб рдХреЗ рдирд╛рдо рд╣реИрдВ рдЬреЛ рди рдХреЗрд╡рд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВ? рдлрд┐рд░ рд╢реЗрд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

  $ ls # рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдкрд░ рджреЗрдЦреЗрдВ
 serial_name_01_qwerty.mkv
 serial_name_02_asdfgh.mkv
 $ рд╕реАрд░рд┐рдпрд▓ рд╕реЗрдЯ рдорд╛рд╕реНрдХ "serial_name _ ?? _ *ред avi" # рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо c рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬреЛ рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдЬрдЧрд╣ рд▓реЗред
 $ рд╕реАрд░рд┐рдпрд▓ рд╕реЗрдЯ рдЧреНрд▓реЛрдм рд╣рд╛рдВ # рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб




рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ



рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ, рдпрд╣ рд╕рд░рд▓ рд╣реИ:

 рдЦрд┐рд▓рд╛рдбрд╝реА = рдЦрд┐рд▓рд╛рдбрд╝реА
 рд╡рд┐рдХрд▓реНрдк = ""
 рдкреНрд░рдХрд░рдг = режреж


рд╣рдо рд╕реНрдерд┐рддрд┐ рдбреЗрдЯрд╛ рджреЗрдЦрдиреЗ рдХреЛ рдХрд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рдЪрд╛рд░ рдЗрд╕реЗ рд╕реАрдзреЗ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдирд┐рд╣рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдпрджрд┐ рдЖрдк рдПрдХ рд╕реАрдбреА рд╕реЗ рд╢реНрд░реГрдВрдЦрд▓рд╛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд▓рд┐рдЦрдиреЗ рдХреЗ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝реЛрд▓реНрдбрд░ (nfs / samba) рдпрд╛ рдмрд╕ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЯреЙрд░реЗрдВрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдкрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рд╣реЛрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдо рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрде рдХреЗ рд╕рд╛рде рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рднреА рдкрд╣рдЪрд╛рди рдХрд░реЗрдВрдЧреЗ рдЬрд╣рд╛рдВ рдПрдкрд┐рд╕реЛрдб рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВред рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИрд╢ рд▓реЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рддрд╛рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдг рдХреА рд╕реНрдХреНрд░реАрдирд┐рдВрдЧ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рди рд╣реЛ рдЬреЛ рд╡рд╣рд╛рдВ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 pwdhash = `pwd | md5sum | awk '{рдкреНрд░рд┐рдВрдЯ $ 1}' '


рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЕрдкрдиреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╕рднреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗ, рдЕрдЧрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╣реАрдВ рд╣реИ:

 рдкрд░реАрдХреНрд╖рдг!  -d ~ / .serial && mkdir ~ / .serial


рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд▓рд┐рдЦреЗрдВрдЧреЗ:

 savefile = ~ / .serial / $ pwdhash


рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдпрд╣рд╛рдБ рдореИрдВ рдкрд╛рдЧрд▓ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдорд╛рд░рд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдЖрдк рдПрдХ рдкреВрд░реНрдг-рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреИрд╕реЗ рдХрд┐ рд╕рд╛рдЗрдХреНрд▓рд╛рдЗрдЯ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдард┐рди mysql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрд╕ рд╕рдордп рдореЗрдВ рдЙрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рджреВрд░ рдХрд░ рджрд┐рдпрд╛, рдЕрдиреНрдпрдерд╛ рдПрдХ рдмрдбрд╝рд╛ рд░рд╛рдХреНрд╖рд╕ рд╕рд┐рд░реНрдл рдЦрд┐рд▓рд╛рдбрд╝реА рдкрд░ рд▓рдкреЗрдЯрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрд╛рд╣рд░ рдЖ рдЬрд╛рддрд╛ред

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

рдпрджрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рддреЛ рдлрд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ:

 рдЕрдЧрд░ [-$ $ savefile]
 рддреЛ
     рддреИрдпрд╛рд░ = "рд╕рддреНрдп"
     ред  $ рдмрдЪрдд
 рдлрд╛рдИ


рдЗрд╕рд▓рд┐рдП, рдФрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рд╣рдо рдХреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдЗрди рдкрд░ рдмрд╕ рдЧрдпрд╛:

 рдХреЗрд╕ $ 1 рдореЗрдВ
     # рдЕрдЧрд▓рд╛ рдПрдкрд┐рд╕реЛрдб рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛
     рдПрди | рдЕрдЧрд▓рд╛)
         # ...
     ;;
     # рдлрд┐рд░ рд╕реЗ рджреЗрдЦрд╛ рдЧрдпрд╛ рдПрдкрд┐рд╕реЛрдб рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ
     рдПрд╕ | рд╡рд╣реА)
         # ...
     ;;
     # рдЕрдкрдиреЗ рдирдВрдмрд░ рд╕реЗ рдПрдХ рдПрдкрд┐рд╕реЛрдб рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ 
     рдИ | рдПрдкрд┐рд╕реЛрдб | рдПрдкрд┐рд╕реЛрдб)
         # ...
     ;;
     # рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
     рд╕реЗрдЯ)
         # ...
     ;;
     # рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рджреЗрдЦреЗрдВ
     рд╕реНрдерд┐рддрд┐ | рд╢реЛ)
         # ...
     ;;
     # рдФрд░ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрджрд░реНрдн, рдЕрдЧрд░ рдореИрдВ рдЕрдЪрд╛рдирдХ рдХреБрдЫ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реВрдВред
     *)
         рдЗрдХреЛ рдЕрдЬреНрдЮрд╛рдд рдХрдорд╛рдВрдбред
         рдЗрдХреЛ рдХрдорд╛рдВрдб:
         рдЗрдХреЛ рдиреЗрдХреНрд╕реНрдЯ - рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛ рдЖрдкрдиреЗ рдЦреЗрд▓рд╛ рд╣реИ, рдЙрд╕рдХреЗ рдЖрдЧреЗ рдПрдкрд┐рд╕реЛрдб рдмрдЬрд╛рддрд╛ рд╣реИ
         рдПрдХ рд╣реА рдЧреВрдВрдЬ - рдЗрд╕ рдкреНрд░рдХрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЗрд▓рддрд╛ рд╣реИ
         рдЗрдХреЛ рд╢реЛ - рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИ
         рдЗрдХреЛ рдПрдкрд┐рд╕реЛрдб рдПрдирдПрди - рдПрдкрд┐рд╕реЛрдб рдПрдирдПрди рдирд┐рднрд╛рддрд╛ рд╣реИ
         рдЗрдХреЛ рд╕реЗрдЯ var_name рдорд╛рди - рдЪрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
     ;;
 esac


рд╣рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

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

 рдлрд╝рдВрдХреНрд╢рди рдЪреЗрдХ рдХрд░реЗрдВ
     рдЕрдЧрд░ [-z "$ рддреИрдпрд╛рд░"]
     рддреЛ
         рдЧреВрдВрдЬ рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
         рдЗрдХреЛ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
         рдЧреВрдВрдЬ "$ 0 рд╕реЗрдЯ рдорд╛рд╕реНрдХ \" Movie_name_episode _ ?? _ smth.avi \ ""
         рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ 1
     рдлрд╛рдИ
 }


рдЕрдм, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рднреА рдПрдХ рдЕрд▓рдЧ рдХрд╛рд░реНрдп рд╣реИ:

 рдлрд╝рдВрдХреНрд╢рди рд▓реЙрдиреНрдЪ {
     # ...
 }


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:

 рдореВрд╡реА = "` рдЗрдХреЛ \ "$ рдорд╛рд╕реНрдХ \" | sed \ "s / ?? / $ рдПрдкрд┐рд╕реЛрдб / g \" `"


рдореБрдЭреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдереА: рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдмрд╛рд╢ рдореЗрдВ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ ... рд╡рд┐рдХреГрддрд┐ рдХреА рдмрджрд▓рддреА рдбрд┐рдЧреНрд░реА рдХреЗ рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрд╕ рдкрд░ рдмрд╕ рдЧрдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдпрд╣ рд╣реИ рдХрд┐ рдорд╛рд╕реНрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 рдЕрдЧрд░ ["$ glob" == "рд╣рд╛рдБ"]
 рддреЛ
     рдлрд┐рд▓реНрдо = "$ (eval" рдЗрдХреЛ $ рдлрд┐рд▓реНрдо ")"
 рдлрд╛рдИ


рдЖрдк рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд▓реНрдк рд╕реБрдЭрд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдкреНрд░рд╛рдкреНрдд рдирд╛рдо рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рд╣реИ, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдВрджреЗрд╢ рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 рдкрд░реАрдХреНрд╖рдг!  -f "$ рдлрд┐рд▓реНрдо" && рдПрдкрд┐рд╕реЛрдб $ рдкреНрд░рдХрд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛


рдЕрд░реЗ рд╣рд╛рдБ, рдпрд╣рд╛рдБ рдПрдХ рдФрд░ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рд╣реИ: рдпрд╣ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ

 рдлрдВрдХреНрд╢рди рдбрд╛рдИ {
     рдЧреВрдВрдЬ $ @
     рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ 1
 }


рдЖрдЗрдП рд▓реЙрдиреНрдЪ рд▓реЙрдиреНрдЪ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЦреЗрд▓реЗ рдЧрдП рдЕрдВрддрд┐рдо рдПрдкрд┐рд╕реЛрдб (рдФрд░ рд▓реЙрдиреНрдЪ рдХреА рддрд╛рд░реАрдЦ) рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ:

 рдЗрдХреЛ рдПрдкрд┐рд╕реЛрдб = $ рдПрдкрд┐рд╕реЛрдб "#" рдкрд░ `рддрд╛рд░реАрдЦ` >> $ savefile


рд╣рдо рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗ:

 рдЗрдХреЛ рдкреНрд▓реЗрдЗрдВрдЧ рдПрдкрд┐рд╕реЛрдб $ рдПрдкрд┐рд╕реЛрдб ...


рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ, рдПрдХ рдлрд╝рд╛рдЗрд▓ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкрд┐рд╕реЛрдб рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

 $ рдЦрд┐рд▓рд╛рдбрд╝реА $ рд╡рд┐рдХрд▓реНрдк "$ рдлрд┐рд▓реНрдо" "$ @"


рдорд╣рд╛рди, рд▓реЙрдиреНрдЪ рд╕реБрд╡рд┐рдзрд╛ рддреИрдпрд╛рд░ рд╣реИ! рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЕрд╡рд╢реЗрд╖: рдорд╛рдорд▓реЗ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рднрд░реЗрдВред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЖрджреЗрд╢ рд╕рдорд╛рди рд╣реИ:

 рдПрд╕ | рд╡рд╣реА)
     check_ready
     рдкрд╛рд▓реА
     рд▓реЙрдиреНрдЪ "$ @"
 ;;


рдЕрдЧрд▓реЗ рдПрдкрд┐рд╕реЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЪрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕реА рд╕рдордп рдкрд╣рд▓реЗ рд╢реВрдиреНрдп рдХреЛ рд╣рд░рд╛рдХрд░ рдмрдЪрд╛рдПрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдЧ рдЙрдареЗ:

 рдПрди | рдЕрдЧрд▓рд╛)
     check_ready
     рдПрдкрд┐рд╕реЛрдб = `рдЗрдХреЛ $ рдПрдкрд┐рд╕реЛрдб | awk '{printf"% 02d ", $ 1 + 1}' 0
     рдкрд╛рд▓реА
     рд▓реЙрдиреНрдЪ "$ @"
 ;;


рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд░рдг рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 рдИ | рдПрдкрд┐рд╕реЛрдб | рдПрдкрд┐рд╕реЛрдб)
     check_ready
     рдкрд░реАрдХреНрд╖рдг -z "$ 2" && рдорд░реЛ рдХреЛрдИ рдкреНрд░рдХрд░рдг рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛
     рдПрдкрд┐рд╕реЛрдб = $ 2
     рдкрд╛рд▓реА
     рдкрд╛рд▓реА
     рд▓реЙрдиреНрдЪ "$ @"
 ;;


рдФрд░ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХреБрдЫ рдХреЗ рд▓рд┐рдП - рдЪрд░ рд╕реЗрдЯ рдХрд░рдирд╛:

 рд╕реЗрдЯ)
     # рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╣рдореЗрдВ рдЪрд░ рдХрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
     рдЯреЗрд╕реНрдЯ -z "$ 2" && рдбрд╛рдИ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕: рдПрдкрд┐рд╕реЛрдб рдорд╛рд╕реНрдХ рдЧреНрд▓реЛрдм рд╡рд┐рдХрд▓реНрдк рдЦрд┐рд▓рд╛рдбрд╝реА
     var_name = "$ 2"
     # рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдЕрд░реНрде рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рд╣реИ
     рдкрд░реАрдХреНрд╖рдг -z "$ 3" && рдорд░рдиреЗ рдХрд╛ рдХреЛрдИ рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ
     рдкрд╛рд▓реА
     рдкрд╛рд▓реА
     # рдФрд░ рд╕рдм рдХреБрдЫ рд╣реИ рдХрд┐ рд▓рд┐рдЦреЗрдВ:
     рдЧреВрдВрдЬ "$ var_name = \" $ @ \ "" # "рдкрд░` рддрд╛рд░реАрдЦ` >> $ savefile
 ;;


рдЕрдВрдд рдореЗрдВ, рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрддреНрдкрд╛рджрди:

 рд╕реНрдерд┐рддрд┐ | рд╢реЛ)
     check_ready
     рдЗрдХреЛ рд▓рд╛рд╕реНрдЯ рдореЗрдВ рдПрдкрд┐рд╕реЛрдб $ рдПрдкрд┐рд╕реЛрдб рдЦреЗрд▓рд╛ рдЧрдпрд╛
     рдЧреВрдВрдЬ рд╡рд┐рдХрд▓реНрдк $ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ
     рдЗрдХреЛ рд╕реЗрд╡рдлрд╛рдЗрд▓ $ рд╕реЗрд╡рдлрд╛рдЗрд▓ рд╣реИ
     рдЗрдХреЛ рдорд╛рд╕реНрдХ \ "$ рдорд╛рд╕реНрдХ \" рд╣реИ
     test -z "$ рдЧреНрд▓реЛрдм" ||  рдЗрдХреЛ рдЧреНрд▓реЛрдмрд┐рдВрдЧ рд╕реЗрдЯ рд╣реИ
 ;;


рдпрд╣рд╛рдВ рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдорд╛рдкреНрдд, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЦрд░рд╛рдм рджрд╕реНрддрд╛рд╡реЗрдЬ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ bitbucket.org/tsx/env/src/tip/bin/serial



All Articles