Shell

Simple shell interpreter. More...

Detailed Description

Simple shell interpreter.

Files

file  shell.h
 Shell interface definition.
 

Data Structures

struct  shell_command_t
 A single command in the list of the supported commands. More...
 

Macros

#define SHELL_DEFAULT_BUFSIZE   (128)
 Shutdown RIOT on shell exit. More...
 

Typedefs

typedef int(* shell_command_handler_t) (int argc, char **argv)
 Protype of a shell callback handler. More...
 
typedef struct shell_command_t shell_command_t
 A single command in the list of the supported commands. More...
 

Functions

void shell_post_readline_hook (void)
 Optional hook after readline has triggered. More...
 
void shell_pre_command_hook (int argc, char **argv)
 Optional hook before shell command is called. More...
 
void shell_post_command_hook (int ret, int argc, char **argv)
 Optional hook after shell command is called. More...
 
void shell_run_once (const shell_command_t *commands, char *line_buf, int len)
 Start a shell and exit once EOF is reached. More...
 
static void shell_run_forever (const shell_command_t *commands, char *line_buf, int len)
 Start a shell and restart it if it exits. More...
 
static void shell_run (const shell_command_t *commands, char *line_buf, int len)
 Back-porting alias for shell_run_forever. More...
 

Macro Definition Documentation

◆ SHELL_DEFAULT_BUFSIZE

#define SHELL_DEFAULT_BUFSIZE   (128)

Shutdown RIOT on shell exit.

Default shell buffer size (maximum line length shell can handle)

Definition at line 49 of file shell.h.

Typedef Documentation

◆ shell_command_handler_t

typedef int(* shell_command_handler_t) (int argc, char **argv)

Protype of a shell callback handler.

The functions supplied to shell_run() must use this signature. The argument list is terminated with a NULL, i.e argv[argc] == NULL`. argv[0]`` is the function name.

Escape sequences are removed before the function is called.

The called function may edit argv and the contained strings, but it must be taken care of not to leave the boundaries of the array. This functionality can be used by getopt() or a similar function.

Parameters
[in]argcNumber of arguments supplied to the function invocation.
[in]argvThe supplied argument list.
Returns
0 on success
Anything else on failure

Definition at line 99 of file shell.h.

◆ shell_command_t

A single command in the list of the supported commands.

The list of commands is NULL terminated, i.e. the last element must be { NULL, NULL, NULL }.

Function Documentation

◆ shell_post_command_hook()

void shell_post_command_hook ( int  ret,
int  argc,
char **  argv 
)

Optional hook after shell command is called.

User implemented function gets called before a valid shell command will be called.

Note
Only executed with the shell_hooks module.
Parameters
[in]retReturn value of the shell command.
[in]argcNumber of arguments supplied to the function invocation.
[in]argvThe supplied argument list.

◆ shell_post_readline_hook()

void shell_post_readline_hook ( void  )

Optional hook after readline has triggered.

User implemented function gets called after the shell readline is complete.

Note
Only executed with the shell_hooks module.

◆ shell_pre_command_hook()

void shell_pre_command_hook ( int  argc,
char **  argv 
)

Optional hook before shell command is called.

User implemented function gets called before a valid shell command will be called.

Note
Only executed with the shell_hooks module.
Parameters
[in]argcNumber of arguments supplied to the function invocation.
[in]argvThe supplied argument list.

◆ shell_run()

static void shell_run ( const shell_command_t commands,
char *  line_buf,
int  len 
)
inlinestatic

Back-porting alias for shell_run_forever.

Parameters
[in]commandsptr to array of command structs
[in]line_bufBuffer that will be used for reading a line
[in]lennr of bytes that fit in line_buf

Definition at line 150 of file shell.h.

◆ shell_run_forever()

static void shell_run_forever ( const shell_command_t commands,
char *  line_buf,
int  len 
)
inlinestatic

Start a shell and restart it if it exits.

             If `CONFIG_SHELL_SHUTDOWN_ON_EXIT` is set (e.g. on native)
             the shell will instead shut down RIOT once EOF is reached.
Parameters
[in]commandsptr to array of command structs
[in]line_bufBuffer that will be used for reading a line
[in]lennr of bytes that fit in line_buf

Definition at line 131 of file shell.h.

◆ shell_run_once()

void shell_run_once ( const shell_command_t commands,
char *  line_buf,
int  len 
)

Start a shell and exit once EOF is reached.

Parameters
[in]commandsptr to array of command structs
[in]line_bufBuffer that will be used for reading a line
[in]lennr of bytes that fit in line_buf