рдпрд╣ рд╕рдм рд╕рд╛рдорд╛рди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рдореАрдбрд┐рдпрд╛ рдкреНрд▓реЗрдпрд░ 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