Linux Shell Scripting

  1. Control Flow and Decision Making
    1. Exit Statuses and Return Codes
      1. Success vs Failure Codes
        1. Checking Exit Status
          1. Setting Custom Exit Codes
            1. Exit Status Best Practices
            2. Conditional Statements
              1. The if Statement
                1. Basic if-then-fi Structure
                  1. if-then-else Structure
                    1. elif for Multiple Conditions
                      1. Nested if Statements
                        1. Short-Circuit Evaluation
                        2. Test Conditions
                          1. The test Command
                            1. Bracket Notation
                              1. Double Bracket Extensions
                              2. File Testing
                                1. File Existence Tests
                                  1. File Type Tests
                                    1. File Permission Tests
                                      1. File Comparison Tests
                                        1. File Age and Size Tests
                                        2. String Testing
                                          1. String Equality and Inequality
                                            1. String Length Tests
                                              1. Pattern Matching Tests
                                                1. Case-Insensitive Comparisons
                                                2. Numeric Testing
                                                  1. Integer Comparisons
                                                    1. Arithmetic Expressions
                                                      1. Floating Point Considerations
                                                      2. The case Statement
                                                        1. Basic case Structure
                                                          1. Pattern Matching
                                                            1. Multiple Patterns per Case
                                                              1. Fall-through Behavior
                                                                1. Default Case Handling
                                                              2. Logical Operators
                                                                1. AND Operator
                                                                  1. Command Chaining on Success
                                                                    1. Short-Circuit Evaluation
                                                                    2. OR Operator
                                                                      1. Command Chaining on Failure
                                                                        1. Alternative Execution Paths
                                                                        2. NOT Operator
                                                                          1. Negating Conditions
                                                                            1. Complex Logic Construction
                                                                            2. Combining Logical Operators
                                                                              1. Precedence Rules
                                                                                1. Grouping with Parentheses
                                                                                  1. Complex Conditional Logic