Expect script examples
----------------------

This section shows some examples of scripts entered into a
Configuration Template for ``device/ios/Script`` that can be 
used in a Provisioning Workflow to run the script. The examples
show the usage of macros and variables.

Consider the following script snippet:

::

   spawn telnet {{ pwf.ios_details.host }}  23\n


If the Provisioning Workflow from which the script is executed contains
a context variable called ``ios_details`` with a value called
``{{data.Ios.* || direction:local}}``, then the device host will be 
the value of the ``data.Ios`` instance in the current hierarchy.



Consider the following script snippet:

::

   send "ping {{data.Countries.ios-country_code | country_name: 'South Africa'}}\r"\n

The script will be:

::

   send "ping ZA\r"\n


Consider the following multi-line macro called ``IOS_enable``:

::

   expect "HQ>\r" 
   send "enable\r" 
   expect "Password:\r" 
   send  "{{device_details.enable_password}}\r"

The macro in a multiline script needs to be entered on a single line - without line breaks.

If we had macros for other snippets called ``IOS_login`` and ``IOS_show_clock``, then the Configuration Template
Expect Script value can be entered as these three macros:

::

   {{IOS_login}}{{IOS_enable}}{{IOS_show_clock}}



    
