Build Your Own Shell (Go Edition)
Buy now
Learn more
Step 0 - Setting Up
What We're Going To Build
Create a GitHub Repo
Initialise the Go Module
Step 1 - Create The Simplest Possible Command Line Shell
Step 1 - Challenge: The Simplest Possible Shell
Building The Simple Shell
Step 1 - Solution: The Simplest Shell
Step 2 - Challenge: Handle Multiple Commands
Step 2 - Challenge: Handling Multiple Commands
Exiting From The Shell
Handling Multiple Commands
Step 2 - Solution: Handling Multiple Commands
Step 3 - Non Existent Commands
Step 3 - Challenge: Handling Non-Existent Commands
Catching And Handling Errors
Step 3 - Solution: Handling Non-Existent Commands
Step 4 - External Commands With Arguments
Step 4 - Challenge: Commands With Arguments
Handling The Arguments
Step 4 - Solution: Handling The Arguments
Step 5 - Built-in Commands
Step 5 - Challenge: Implement Builtin Commands
Adding The Builtin Commands
Step 5 - Solution: Implementing Builtin Commands
Step 6 - Support Pipes
Step 6 - Challenge: Supporting Pipes
Approaching The Task Of Piping Commands
Piping Commands - The Walking Skeleton
Supporting Piping For Builtin Commands
Step 6 - Solution: Supporting Pipes
Step 7 - Handling Signals
Step 7 - Challenge: Handling Signals
Handling Signals In Go
Step 7 - Solution: Handling Signals
Step 8 - Command History
Step 8 - Challenge: Command History
Handling History
Some Refactoring - Pulling Out Pwd
The History Solution
Step 8 - Solution: Command History
Conclusion
Taking It Further And Wrapping Up
Products
Course
Section
Step 7 - Handling Signals
Step 7 - Handling Signals
Build Your Own Shell (Go Edition)
Buy now
Learn more
Step 0 - Setting Up
What We're Going To Build
Create a GitHub Repo
Initialise the Go Module
Step 1 - Create The Simplest Possible Command Line Shell
Step 1 - Challenge: The Simplest Possible Shell
Building The Simple Shell
Step 1 - Solution: The Simplest Shell
Step 2 - Challenge: Handle Multiple Commands
Step 2 - Challenge: Handling Multiple Commands
Exiting From The Shell
Handling Multiple Commands
Step 2 - Solution: Handling Multiple Commands
Step 3 - Non Existent Commands
Step 3 - Challenge: Handling Non-Existent Commands
Catching And Handling Errors
Step 3 - Solution: Handling Non-Existent Commands
Step 4 - External Commands With Arguments
Step 4 - Challenge: Commands With Arguments
Handling The Arguments
Step 4 - Solution: Handling The Arguments
Step 5 - Built-in Commands
Step 5 - Challenge: Implement Builtin Commands
Adding The Builtin Commands
Step 5 - Solution: Implementing Builtin Commands
Step 6 - Support Pipes
Step 6 - Challenge: Supporting Pipes
Approaching The Task Of Piping Commands
Piping Commands - The Walking Skeleton
Supporting Piping For Builtin Commands
Step 6 - Solution: Supporting Pipes
Step 7 - Handling Signals
Step 7 - Challenge: Handling Signals
Handling Signals In Go
Step 7 - Solution: Handling Signals
Step 8 - Command History
Step 8 - Challenge: Command History
Handling History
Some Refactoring - Pulling Out Pwd
The History Solution
Step 8 - Solution: Command History
Conclusion
Taking It Further And Wrapping Up
3 Lessons
Step 7 - Challenge: Handling Signals
Handling Signals In Go
Step 7 - Solution: Handling Signals