.. SPDX-License-Identifier: GPL-2.0+:

askenv command
===============

Synopsis
--------

::

    askenv name [message] [size]

Description
-----------

Display message and get environment variable name of max size characters
from stdin.

name
    name of the environment variable

message
    message is displayed while the command waits for the  value to be
    entered from stdin.if no message is specified,a default message
    "Please enter name:" will be displayed.

size
    maximum number of characters that will be stored in environment
    variable name.this is in decimal number format (unlike in
    other commands where size values are in hexa-decimal). Default
    value of size is 1023 (CONFIG_SYS_CBSIZE - 1).

Example
-------

Value of a environment variable env1 without message and size parameters:

::

    => askenv env1;echo $?
    Please enter 'env1': val1
    0
    => printenv env1
    env1=val1

Value of a environment variable env2 with message and size parameters:

::

    => askenv env2 Please type-in a value for env2: 10;echo $?
    Please type-in a value for env2: 1234567890123
    0
    => printenv env2
    env2=1234567890

Value of a environment variable env3 with size parameter only:

::

    => askenv env3 10;echo $?
    Please enter 'env3': val3
    0
    => printenv env3
    env3=val3

Return Value of askenv command, when used without any other arguments:

::

    => askenv;echo $?
    askenv - get environment variables from stdin

    Usage:
    askenv name [message] [size]
        - display 'message' and get environment variable 'name' from stdin (max 'size' chars)
    1

Configuration
-------------

The askenv command is only available if CMD_ASKENV=y

Return value
------------

The return value $? is set to 0 (true).
If no other arguments are specified (along with askenv), it is set to 1 (false).
