<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Frederic Delorme</title>
    <description>The latest articles on Forem by Frederic Delorme (@mcgivrer).</description>
    <link>https://forem.com/mcgivrer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F972%2F9f481b9366a2742ac276aef3d21c2dca.jpeg</url>
      <title>Forem: Frederic Delorme</title>
      <link>https://forem.com/mcgivrer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mcgivrer"/>
    <language>en</language>
    <item>
      <title>My Coding Rules for Bash Scripts</title>
      <dc:creator>Frederic Delorme</dc:creator>
      <pubDate>Mon, 19 Jan 2026 10:39:19 +0000</pubDate>
      <link>https://forem.com/mcgivrer/my-coding-rules-for-bash-scripts-4n3j</link>
      <guid>https://forem.com/mcgivrer/my-coding-rules-for-bash-scripts-4n3j</guid>
      <description>&lt;p&gt;This collection now includes examples of simple and complex functions, with and without parameters, providing a comprehensive reference for coding Bash scripts. Starting from the basic and going to the less-used solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Shebang
&lt;/h2&gt;

&lt;p&gt;Start each script with a shebang line to indicate the interpreter to use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Permissions
&lt;/h2&gt;

&lt;p&gt;Ensure that the script has execution permissions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;chmod&lt;/span&gt; +x script_name.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Comments
&lt;/h2&gt;

&lt;p&gt;Use comments to explain the code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# This is a comment&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  4. Variables
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Variable Declaration
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Declare variables without spaces around the equal sign:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"value"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Default Values&lt;/strong&gt;: Use the syntax &lt;code&gt;${variable:-default_value}&lt;/code&gt; to set a default value if the variable is not defined:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="k"&gt;:-&lt;/span&gt;&lt;span class="s2"&gt;"default_value"&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Variable Processing
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Uppercase&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;uppercase&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="p"&gt;^^&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lowercase&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;lowercase&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,,&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Capitalization (first letter uppercase)&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;capitalize&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="p"&gt;^&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inline Character Replacement&lt;/strong&gt;: Use the syntax &lt;code&gt;${variable//old/new}&lt;/code&gt; to replace all occurrences of a substring with another:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;new_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;name&lt;/span&gt;&lt;span class="p"&gt;//old/new_value&lt;/span&gt;&lt;span class="k"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. Input Parameters
&lt;/h2&gt;

&lt;p&gt;Bash scripts can receive input parameters, which can be processed in various ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$1, $2, ...&lt;/strong&gt;: Represent the first parameters passed to the script. For example, &lt;code&gt;$1&lt;/code&gt; is the first argument, &lt;code&gt;$2&lt;/code&gt; is the second, etc.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;  &lt;code&gt;bash&lt;br&gt;
  echo "First parameter: $1"&lt;br&gt;
  &lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$#&lt;/strong&gt;: Indicates the total number of parameters passed to the script.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;  &lt;code&gt;bash&lt;br&gt;
  echo "Number of parameters: $#"&lt;br&gt;
  &lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$@&lt;/strong&gt;: Represents all parameters passed to the script as a list. Used in a loop to process each argument.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;  &lt;code&gt;bash&lt;br&gt;
  for param in "$@"; do&lt;br&gt;
      echo "Parameter: $param"&lt;br&gt;
  done&lt;br&gt;
  &lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$&lt;/strong&gt;*: Similar to &lt;code&gt;$@&lt;/code&gt;, but all parameters are treated as a single string.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;  &lt;code&gt;bash&lt;br&gt;
  echo "All parameters: $*"&lt;br&gt;
  &lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;$?&lt;/strong&gt;: Represents the return code of the last executed command.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;  &lt;code&gt;bash&lt;br&gt;
  echo "Return code: $?"&lt;br&gt;
  &lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Conditions
&lt;/h2&gt;

&lt;p&gt;Use &lt;code&gt;if&lt;/code&gt;, &lt;code&gt;then&lt;/code&gt;, &lt;code&gt;else&lt;/code&gt; for conditional structures:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; condition &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
    # commands
&lt;span class="k"&gt;else&lt;/span&gt;
    # other commands
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  7. &lt;code&gt;switch case&lt;/code&gt; Structures
&lt;/h2&gt;

&lt;p&gt;Use &lt;code&gt;case&lt;/code&gt; to handle multiple conditions more readably. You can process multiple possible values by separating them with spaces:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="nv"&gt;$variable&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt;
    value1 &lt;span class="p"&gt;|&lt;/span&gt; value2 &lt;span class="p"&gt;|&lt;/span&gt; value3&lt;span class="p"&gt;)&lt;/span&gt;
        # commands &lt;span class="k"&gt;for &lt;/span&gt;value1, value2, or value3
        &lt;span class="p"&gt;;;&lt;/span&gt;
    value4&lt;span class="p"&gt;)&lt;/span&gt;
        # commands &lt;span class="k"&gt;for &lt;/span&gt;value4
        &lt;span class="p"&gt;;;&lt;/span&gt;
    &lt;span class="k"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        # default commands
        &lt;span class="p"&gt;;;&lt;/span&gt;
&lt;span class="k"&gt;esac&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. Functions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Function Examples
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Simple Function (no parameters)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;my_simple_function&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    echo &lt;span class="s2"&gt;"This is a simple function."&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;# Call the function&lt;/span&gt;
my_simple_function
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Function with Parameters
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;my_function_with_parameters&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    param1&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;
    param2&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;
    echo &lt;span class="s2"&gt;"Parameter 1: &lt;/span&gt;&lt;span class="nv"&gt;$param1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
    echo &lt;span class="s2"&gt;"Parameter 2: &lt;/span&gt;&lt;span class="nv"&gt;$param2&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;# Call the function with parameters&lt;/span&gt;
my_function_with_parameters &lt;span class="s2"&gt;"value1"&lt;/span&gt; &lt;span class="s2"&gt;"value2"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Complex Function (with processing and multiple parameters)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;my_complex_function&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    name&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;
    age&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;

    if &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$age&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-lt&lt;/span&gt; 18 &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
        echo &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="s2"&gt; is a minor."&lt;/span&gt;
    else
        echo &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$name&lt;/span&gt;&lt;span class="s2"&gt; is an adult."&lt;/span&gt;
    fi
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;# Call the complex function&lt;/span&gt;
my_complex_function &lt;span class="s2"&gt;"Alice"&lt;/span&gt; 20
my_complex_function &lt;span class="s2"&gt;"Bob"&lt;/span&gt; 15
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  9. Variable Testing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Comparators for Tests
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;String Comparison&lt;/strong&gt;:
  - Equal: &lt;code&gt;==&lt;/code&gt;
  - Not equal: &lt;code&gt;!=&lt;/code&gt;
  - Less than: &lt;code&gt;&amp;lt;&lt;/code&gt;
  - Greater than: &lt;code&gt;&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$string1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$string2&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
    echo &lt;span class="s2"&gt;"The strings are identical"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Numeric Comparison&lt;/strong&gt;:
  - Equal: &lt;code&gt;-eq&lt;/code&gt;
  - Not equal: &lt;code&gt;-ne&lt;/code&gt;
  - Less than: &lt;code&gt;-lt&lt;/code&gt;
  - Greater than: &lt;code&gt;-gt&lt;/code&gt;
  - Less than or equal: &lt;code&gt;-le&lt;/code&gt;
  - Greater than or equal: &lt;code&gt;-ge&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$number1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="nt"&gt;-lt&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$number2&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then&lt;/span&gt;
    echo &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$number1&lt;/span&gt;&lt;span class="s2"&gt; is less than &lt;/span&gt;&lt;span class="nv"&gt;$number2&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  10. Loops
&lt;/h2&gt;

&lt;p&gt;Use &lt;code&gt;for&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;, or &lt;code&gt;until&lt;/code&gt; loops to iterate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;1..5&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
    echo &lt;span class="nv"&gt;$i&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  11. Error Handling
&lt;/h2&gt;

&lt;p&gt;Check for errors with &lt;code&gt;$?&lt;/code&gt; and use &lt;code&gt;set -e&lt;/code&gt; to stop the script in case of an error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  12. Using &lt;code&gt;set&lt;/code&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;set -u&lt;/code&gt; to treat undefined variables as errors:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;set&lt;/span&gt; &lt;span class="nt"&gt;-u&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  13. Output
&lt;/h2&gt;

&lt;p&gt;Use &lt;code&gt;echo&lt;/code&gt; to display messages or results:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Message"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  14. Using &lt;code&gt;trap&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Use &lt;code&gt;trap&lt;/code&gt; to handle signals and clean up before exiting:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;trap&lt;/span&gt; &lt;span class="s1"&gt;'cleanup_command'&lt;/span&gt; EXIT
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  15. Best Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Avoid ambiguous variable names.&lt;/li&gt;
&lt;li&gt;Use descriptive file names.&lt;/li&gt;
&lt;li&gt;Test your scripts in a safe environment before running them in production.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>bash</category>
      <category>script</category>
      <category>rules</category>
    </item>
  </channel>
</rss>
