рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕рд┐рд╕реНрдХреЛ IOS рдХреЗ рд▓рд┐рдП Tcl

рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреЗ рджрд░реНрдЬрдиреЛрдВ рд╕рд┐рд╕реНрдХреЛ рдПрдХреНрд╕реЗрд╕ рд╕реНрд╡рд┐рдЪ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рд╣реЛрд╕реНрдЯ рдирд╛рдо рдФрд░ рдПрдХ рдбреЛрдореЗрди, рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ, рдкрд╛рд╕рд╡рд░реНрдб, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА, рдПрд╕рд╡реАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреА рдкрддреЗ, рд╡реАрдПрд▓рдПрдПрди рдирдВрдмрд░, рдЕрдкрд▓рд┐рдВрдХ рдЪрдбреНрдбреА рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд╣рд░ рдмрд╛рд░ рдЗрд╕реЗ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд▓рдВрдмрд╛ рдФрд░ рдЕрдиреБрддреНрдкрд╛рджрдХ рд╣реИред рдмреЗрд╢рдХ, рдЖрдк рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ (рдЯреА) рдПрдлрд╝рдЯреАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕реЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдореНрдпреВрдЯреЗрдмрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдЕрднреА рднреА рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЗрди (рд╕рд╛рде рд╣реА рдХрдИ рдЕрдиреНрдп) рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдХреЛ IOS рдореЗрдВ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕реНрд╡рдЪрд╛рд▓рди рдЙрдкрдХрд░рдг рд╣реЛрддрд╛ рд╣реИ - рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Tcl рджреБрднрд╛рд╖рд┐рдпрд╛ (рд╕рд┐рд╕реНрдХреЛ IOS рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ w / Tcl)ред

Tcl рдХреНрдпрд╛ рд╣реИ


Tcl (рдкрдардиреАрдп "рдЧреБрджрдЧреБрджреА", рдХрднреА-рдХрднреА "рдкреНрд░рд╡рд╛рд╣рд┐рдд") рдХрдВрд╕реЛрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 80 рдХреЗ рджрд╢рдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рдЯреАрдИрд╕реАрдПрд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕реАрдорд╛ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд рд╣реИ: рдпрд╣рд╛рдВ рдУрдУрдкреА рдФрд░ рдЙрдиреНрдирдд рд░реЗрдЧреЗрдХреНрд╕ рдЯреВрд▓реНрд╕, рдбрд╛рдпрдиреЗрдорд┐рдХ рдХрд┐рд░рдгреЗрдВ, рдЖрджрд┐ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИред

рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкрд╣рд▓реЗ рд╕рд┐рд╕реНрдХреЛ IOS 12.2 (3) рдЯреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ (рдХреБрдЫ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рдпрд╣ 12.3 (2) рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓реА) рдФрд░ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

  • рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде Tcl рджреБрднрд╛рд╖рд┐рдпрд╛ред рдпрд╣ IOS XE рдФрд░ XR рд╕рд╣рд┐рдд рд╕рд┐рд╕реНрдХреЛ IOS рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реИ, рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЖрдкрдХреЛ Tcl рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рддреИрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдПрдВ, рдЖрджрд┐ред рдЬреЛ рдЙрдкрдХрд░рдг iOS рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрдЯ рдУрдПрд╕ рдпрд╛ рдПрдПрд╕рдП (рдЗрд╕реА рдирд╛рдо рдХреЗ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдореЗрдВ) рдореЗрдВ рдПрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
  • рддрдерд╛рдХрдерд┐рдд "рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЗрд╡реЗрдВрдЯ рдореИрдиреЗрдЬрд░" рдпрд╛ рдИрдИрдПрдо - рдПрдХ рдЗрд╡реЗрдВрдЯ рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЬреЛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдИ-рдореЗрд▓ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВред EEM рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ (рдПрдкреНрд▓реЗрдЯреНрд╕) Tcl рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди EEM рд╕реНрд╡рдпрдВ рдПрдХ рдЕрд▓рдЧ Tcl рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВред рдИрдИрдПрдо рдиреЗрдХреНрд╕рд╕ (рдПрдирдПрдХреНрд╕ рдУрдПрд╕) рдФрд░ рдПрдПрд╕рдП рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рд╕рдВрд╕реНрдХрд░рдг 9.2 (1) рдФрд░ рдЙрдЪреНрдЪрддрд░ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИред
  • рдЖрд╡рд╛рдЬ рдореЗрдиреВ рд╕рд┐рд╕реНрдЯрдо рдЖрдИрд╡реАрдЖрд░ (рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рд╡реЙрдпрд╕ рд░рд┐рд╕реНрдкреЙрдиреНрд╕)ред

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

рдЫрд╡рд┐

рдЕрдиреБрд╕рдВрдзрд╛рди рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдореЗрдиреВ рдЖрдЗрдЯрдо рдЖрдкрдХреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП IOS рдЯреНрд░реЗрди рд░рд┐рд▓реАрдЬрд╝ рдпрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ IOS рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд░рд┐рд╕рд░реНрдЪ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЗрдиреВ рдЖрдЗрдЯрдо рдЖрдкрдХреЛ рджрд┐рдП рдЧрдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП Tcl рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде iOS рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рдирд╛рдо рд╕реЗ рдлрд╝реАрдЪрд░ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ (рдлрд╝реАрдЪрд░ рдирд╛рдо) "рд╕рд┐рд╕реНрдХреЛ IOS рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ w / Tcl" (рдпрд╛ рдмрд╕ "Tcl"), рд╕реВрдЪреА рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдирд╛рдо рдЬреЛрдбрд╝реЗрдВ, рдЯреНрд░реЗрди рд░рд┐рд▓реАрдЬрд╝ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рднреА IOS рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:



рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╕реАрдПрдлрдПрди рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдкреВрд░реНрдг рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред рддреЛ, CAT2960S рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП, рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдиреЗ IOS 15.2E1 рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ Tcl рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рдИ рдФрд░ 15.2E9 рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Tcl рджреБрднрд╛рд╖рд┐рдпрд╛ рд╡рд╣рд╛рдБ рдФрд░ рд╡рд╣рд╛рдБ рджреЛрдиреЛрдВ рд╣реИред

Tcl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рд╕реНрдХреЛ IOS рдореЗрдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдмрд╣реБрдд рдХреБрдЫ: рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрджрд▓реЗрдВ, рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ, рдПрдордЖрдИрдмреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдЯреАрд╕реАрдкреА рдФрд░ рдпреВрдбреАрдкреА рд╕реЙрдХреЗрдЯреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ ... рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╡реЗрдм рд╢реЗрд▓ рд▓рд┐рдЦреЗрдВ!

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ Tcl рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдХ рдирдИрд▓рд╛рдЗрди рдпрд╛ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдХрдорд╛рдВрдб рдХрд╛ рдХреНрд░рдо рд╣реЛрддрд╛ рд╣реИред рдЧреИрд░-рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ рдЙрджрд╛рд╣рд░рдг:

puts "Hello, world!"; puts "My first Tcl IOS script!" 

рдХреБрдЫ рдСрдкрд░реЗрдЯрд░:

# рд▓рд╛рдЗрди рдХреЗ рдЕрдВрдд рддрдХ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ
set a 1 рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ a = 1 set a 1
$a рдЪрд░ рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
{ } рдмреНрд▓реЙрдХ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ - рд▓реВрдк рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╢рд░реАрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
[ ] рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рдВрдЪрд╛рд▓рдХ - рдЬрдм рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдХреЗ рдмрдЬрд╛рдп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдирдореЗрдВ рдирд┐рд╣рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд░рд┐рдХрд▓рд┐рдд рдореВрд▓реНрдп рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
== <= <> рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ
puts "text" рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдЯреЗрдХреНрд╕реНрдЯ" рдХреЛ stdout рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ (рдпрд╛рдиреА, рдХрдВрд╕реЛрд▓ рдкрд░)
рдХреЗ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП puts $a рд╕рдорд╛рди рд░реВрдк рд╕реЗ puts $a рд╣реИ
gets stdin рдХрдВрд╕реЛрд▓ рд╕реЗ рдорд╛рди рдкрдврд╝рддрд╛ рд╣реИ
рдХрдВрд╕реЛрд▓ рд╕реЗ рдПрдХ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ set a [gets stdin] рдЗрдирдкреБрдЯ рдФрд░ рдЗрд╕рдХреЗ рдЪрд░ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ a
for {set i 1} {$i < 10} {inrc i} {....} рд▓реВрдк рдХреЗ рд▓рд┐рдП
proc {argument, ....} {body} рдкреНрд░рдХреНрд░рд┐рдпрд╛

рдЕрдзрд┐рдХ рд╕рдВрдкреВрд░реНрдг рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, progopedia.ru/language/tcl рджреЗрдЦреЗрдВ

Tcl рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдкреНрд░рд┐рдХреНрд▓реЗрдЧреНрдб EXEC рдореЛрдб рд╕реЗ tclsh рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 sw#Tclsh sw(tcl)# 

рдкрд╣рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ:

рдЫрд╡рд┐

рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ tclquit рдХрдорд╛рдВрдб рдпрд╛ рд╕рд┐рд░реНрдл рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛ рд╣реИред Tcl рдХреЗрд╕ рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП Puts "Hello, world" рдкрдЯреНрд╕ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди IOS рд╢реЗрд▓ рдХрд╛ рд╢реЗрд▓ рд░рдЬрд┐рд╕реНрдЯрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рд╕рднреА рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдбреНрд╕ рдХреЛ рдкрд╣рд▓реЗ Tcl рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдЗрдирдкреБрдЯ рдХрдорд╛рдВрдб рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реИред Tcl, рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо TTY рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╣реИред рдпрджрд┐ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ IOS рдХрдорд╛рдВрдб рдкрд╛рд░реНрд╕рд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ Tcl рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдФрд░ IOS рдХрдорд╛рдВрдб рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреА рд╣реИред IOS рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреВрд░реНрдг-рдкрд╛рда рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреВрд░реНрд╡-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╛рд╣рд░реА рд╕рд╛рдзрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреЗрд╡рд▓ рдлрд╝реНрд▓реИрд╢ рдпрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рдХреЙрдкреА рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдмрд╛рдж рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдЯрдХреЛрдб рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреНрд░реАрдХрдВрдкреНрд▓реАрдореЗрдВрдЯреЗрд╢рди рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд▓реЙрдиреНрдЪ рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

 tclsh flash:filename 

рдЕрд▓рдЧ-рдЕрд▓рдЧ TTY рд╕рддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ Tcl рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рддреНрд░реЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред

Tcl рджреБрднрд╛рд╖рд┐рдпрд╛ рдЖрдВрддрд░рд┐рдХ рдЖрджреЗрд╢:
рдирд┐рд╖реНрдкрд╛рджрд┐рдд - IOS рд╕реАрдПрд▓рдЖрдИ рд╕реЗ рдЙрджреНрдзреГрдд рдЖрджреЗрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ EXEC рд╕реЗрдЯ privelegedред
sw(tcl)#exec "show int fa0" :

рдЫрд╡рд┐

ios-config - рд╡реИрд╢реНрд╡рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЛрдб рд╕реЗ рдПрдХ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдкреАрдЫреЗ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬреЛрдбрд╝реА рдЙрджреНрдзрд░рдгреЛрдВ рдореЗрдВ, рдмрд╛рдж рдХреЗ рд╕рднреА рдЙрдк-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрджреЗрд╢ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
sw(tcl)#ios_config "int fa0" "ip address 192.168.0.1 255.255.255.0" "no shut"
IOS рдЖрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмрд░рд╛рдмрд░:

 sw#conf te sw(config)#int fa0 sw(conf-int)#ip address 192.168.0.1 255.255.255.0 sw(conf-int)#no shut 

Tcl рджреБрднрд╛рд╖рд┐рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрдВрд╕реЛрд▓ рд╕реЗ рд╕реАрдзреЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, TCL рд╢реЗрд▓ рд╕реЗ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдЯрд╛рдЗрдк-рд╣реЗрдб рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реЛрддрд╛ рд╣реИ:
typeahead "y\ny"
exec "reload"

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджреЛ "y" рд╡рд░реНрдгреЛрдВ рдХреЛ рдПрдХ рдирдИ рд▓рд╛рдЗрди (\ n) рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдЗрдирдкреБрдЯ рдмрдлрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдлрд┐рд░ рдкреБрдирдГ рд▓реЛрдб рдХрдорд╛рдВрдб рдХреЛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдЗрдирдкреБрдЯ рдмрдлрд░ рд╕реЗ рд░рджреНрдж рдХрд░реЗрдВ рдпрд╛ рд░реАрд╕реЗрдЯ рдХрдорд╛рдВрдб рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдЧрд╛ рдФрд░ (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ред

рдЧреБрджрдЧреБрджреА рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдЗрд╕реЗ рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

рдЫрд╡рд┐

рдиреЗрд╕реНрдЯреЗрдб рдСрдкрд░реЗрдЯрд░ [expr {..}] рдШреБрдВрдШрд░рд╛рд▓реЗ рдХреЛрд╖реНрдардХ ($ a + $ b) рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрдЧрд╛рдХрд╛рд░ рдХреЛрд╖реНрдардХ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рдорд╛рди рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рддрд╛ рд╣реИред

Tcl рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛:
proc ping_net {x} {
for {set n 1} {$n < $x} {incr n} {
exec "ping 192.168.0.$n"
}
}

рдЬрдм рдЖрдк рдПрдХ рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╕рдорд╛рдкрди рдмреНрд░реЗрд╕рд┐рдЬрд╝ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рджрд░реНрдЬ рди рдХрд░реЗрдВред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕рддреНрд░ рдХреЗ рдЕрдВрдд рддрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд▓реВрдкрд┐рдВрдЧ рдФрд░ рдЖрдкрдХреЗ (V) TTY рд╕рддреНрд░ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рд╕рдХрддреА рд╣реИ! рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╢рдЯрдбрд╛рдЙрди рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдирд╣реАрдВ рд╣реИрдВ (рдЬреИрд╕реЗ рдХрд┐ Ctrl + рдмреНрд░реЗрдХ), рдПрдХ рдирдпрд╛ рд╕рддреНрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдФрд░ clear line рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде "рдЬрдореЗ рд╣реБрдП" рд╕рддреНрд░ рдХреЛ clear line ред

рдЕрдм рдЪрд▓реЛ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рд╣рдорд╕реЗ рдкрд╣рд▓реЗ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ 48-рдкреЛрд░реНрдЯ Cat2950S рд╣реИред рдиреАрдЪреЗ рджреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

  • рдХрдВрд╕реЛрд▓ рд╕реЗ рдЕрдиреБрд░реЛрдз рд╕реНрд╡рд┐рдЪреЗрд╕ рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ sw_num
  • рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП hostname рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рд╕реНрд╡рд┐рдЪ_ <sw_num>
  • рдЕрдиреБрд░реЛрдз рдФрд░ EXEC рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
  • рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рд╕реНрд╡рд┐рдЪ рдирдВрдмрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕рдХреЗ Fa0 рдирд┐рдпрдВрддреНрд░рдг рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (192.168.0.x) рдФрд░ Vlan1 рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (10.0.x.254) рдкрд░ рдкрддрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ
  • рдкреЛрд░реНрдЯ-рдЖрдзрд╛рд░рд┐рдд рдбреАрдПрдЪрд╕реАрдкреА рдЖрд░рдХреНрд╖рдг рдФрд░ 48 рдкрддреЛрдВ рдХрд╛ рдПрдХ рдкреВрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдЖрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдирд┐рдЪрд▓рд╛ рдСрдХреНрдЯреЗрдЯ рдкреЛрд░реНрдЯ рдХреЗ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреБрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред

 puts "Enter Switch number:" set sw_num [gets stdin] ios_config "hostname switch_$sw_num" puts "Enter password (secret):" set pass [gets stdin] ios_config "enable secret 0 $pass" ios_config "line 0 16" "password 0 $pass" "login" ios_config "int fa0" "ip address 192.168.0.$sw_num 255.255.255.0" "no shut" ios_config "int vlan1" "ip address 10.0.$sw_num.254 255.0.0.0" "no shut" ios_config "ip dhcp use subscriber-id client-id" ios_config "ip dhcp subscriber-id interface-name" #    48       subscriber-id for {set i 1} {$i <= 48} {incr i} {ios_config "int Gi1/0/$i" "ip dhcp server use subscriber-id client-id"} ios_config "ip dhcp pool POOL1" "network 10.0.0.0 255.0.0.0" "reserved-only" "default-router 10.10.0.254" #    48  IP-,   .  for {set i 1} {$i <= 48} {incr i} {ios_config "ip dhcp pool POOL1" "address 10.0.$sw_num.$i client-id Gi1/0/$i ascii"} # 

рдиреЛрдЯ 1. рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐ рд╣реИред рдЙрд╕реЗ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЛред

рдиреЛрдЯ 2. рдХреБрдЫ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдИрдУрдПрдл рдЪрд░рд┐рддреНрд░ рдбрд╛рд▓рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдмрд┐рд▓реНрд▓реА рдпрд╛ рдЕрдзрд┐рдХ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдХреЗ IOS рдХрдВрд╕реЛрд▓ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдИрдУрдПрдл рдкрд░ рдареЛрдХрд░ рд▓рдЧрдиреЗ рдХреЗ рдмрд╛рдж, рдЯреАрдИрд╕реА рджреБрднрд╛рд╖рд┐рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ рдФрд░ рдкреВрд░реА рд▓рд╛рдЗрди рдХреА рдЕрдирджреЗрдЦреА рдХрд░реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдмрдЪрдиреЗ рд╡рд╛рд▓рд╛ рдЯрд┐рдкреНрдкрдгреА рдЪрд┐рд╣реНрди рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред

рд╕рд╡рд╛рд▓ рдпрд╣ рдЙрдарддрд╛ рд╣реИ: рдореИрдВ рдПрдХ рдЖрдИрдкреА рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕реНрд╡рд┐рдЪ рдХреА рдпрд╛рдж рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдХреЗрд╡рд▓ рдХрдВрд╕реЛрд▓ рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ? рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╣рд╛рде рд╕реЗ рди рд▓рд┐рдЦреЗрдВ! рдХреНрдпрд╛ рдкреНрд░рдмрдВрдзрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдФрд░ рд╣рд░ рдмрд╛рд░ рдПрдлрд╝рдЯреАрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдирд╣реАрдВ, рдпрд╣ рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рд┐рд╕реНрдХреЛ IOS Xmodem рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдВрд╕реЛрд▓ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реАрдзреЗ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлреНрд▓реИрд╢ рдореЗрдВ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ Xmodem рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рдПрдореБрд▓реЗрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ZOC рдпрд╛ рддреЗрд░рд╛ рдЯрд░реНрдо (рд▓реЗрдХрд┐рди рд▓реЛрдХрдкреНрд░рд┐рдп рдореБрдлреНрдд рдкреБрдЯреНрдЯреА, рдЕрдлрд╕реЛрд╕, рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛!)ред рдирдХрд▓ IOS рдХреЙрдкреА xmodem рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ : рдлреНрд▓реИрд╢: рдлрд╝рд╛рдЗрд▓рдирд╛рдо рдХрдорд╛рдВрдб, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдЯрд░реНрдорд┐рдирд▓ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдиреВ рдореЗрдВ рдлрд╛рдЗрд▓ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ:

рдЫрд╡рд┐

рдпрд╣ ROMmon рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдмрд┐рдирд╛ рдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ рдХрд┐рдП EXEC рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕реНрд╡рд┐рдЪ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЛ "рдлрд╛рдбрд╝" рджреЗрддреЗ рд╣реИрдВ)ред рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХреЙрдкреА рдХрд░рдирд╛ (рдкреАрд╕реА рдХреА рд╕реНрд╡рд┐рдЪ рдХреА рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рд╕реЗ) рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Tcl рд╕реЗ, рдЖрдк рдПрдХ рдЯреЗрд▓рдиреЗрдЯ рд╕рддреНрд░ рдХреЛ рджреВрд░рд╕реНрде рд░рд╛рдЙрдЯрд░ рдореЗрдВ рдирд╣реАрдВ рдЦреЛрд▓ рд╕рдХрддреЗред рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реБрдП
sw(tclsh)#exec "telnet host" рд╕рддреНрд░ рдкрд╛рд╕рд╡рд░реНрдб рдПрдВрдЯреНрд░реА рд╕реНрдЯреЗрдЬ рдкрд░ рдмрд╕ рдлреНрд░реАрдЬ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рд╕рд┐рд╕реНрдХреЛ IOS рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ Tcl рднрд╛рд╖рд╛ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рднреНрд░рдордг рдХрд╛ рд╕рдорд╛рдкрди рдХрд░рддрд╛ рд╣реИ; рдЖрдк Cisco рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз TCL рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЧрд╛рдЗрдб рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде Cisco IOS рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles