{"repo":"cherry-embedded/CherrySH","free":true,"listed":false,"github":"https://github.com/cherry-embedded/CherrySH","clone":"git clone https://github.com/cherry-embedded/CherrySH.git","description":"CherryShell is a tiny and multifunction shell specifically designed for embedded applications","language":"C","stars":67,"topics":["bash","readline","shell","cmd-parser"],"license":"Apache-2.0","category":"cli-tools","readme_excerpt":"English 简体中文 CherrySH CherrySH is a tiny shell specifically designed for embedded applications. Features - Support TAB completion, including command and path completion - Support command history, navigable with the ↑ and ↓ arrow keys - Support environment variables using the $ prefix, e.g., $PATH - Support setting username, hostname, and path/prompt - Support non-blocking mode; compatible with bare-metal and RTOS - Support cursor left/right movement and HOME / END cursor positioning - Support key combinations, including Ctrl + , Alt + , F1-F12 , etc. - Support signal handling: capture and handle signals such as Ctrl+C ( SIGINT ) and Ctrl+Z ( SIGTSTP ) to interrupt the currently running shell task - Support user login; requires implementing a hash function (default: strcmp ) - Support adding, modifying, deleting, and reading environment variables - Support filesystems: FatFS, FileX, LittleFS, RomFS, etc. (TODO) - Support an exit mechanism to terminate command execution, return context, and call a configured handler; can be implemented with setjmp for bare-metal (TODO) - Support job control: run commands in foreground or background and manage them with fg , bg , jobs (TODO) - Support multi-user command permissions (TODO) Demo Porting Taking the example of the HPMicro hpm5301evklite board. - Command lookup uses the GCC section, so we need to modify the linkerscript file to add the relevant section, for example in gcc ld: - Implement shell put and get api, and suggest to use rx i","default_branch":null,"files":null,"tree":[],"storefront":"/r/cherry-embedded","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/cherry-embedded/CherrySH/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}