Skip to content

Instantly share code, notes, and snippets.

@bradtraversy
Last active November 25, 2025 20:36
Show Gist options
  • Select an option

  • Save bradtraversy/ac3b1136fc7d739a788ad1e42a78b610 to your computer and use it in GitHub Desktop.

Select an option

Save bradtraversy/ac3b1136fc7d739a788ad1e42a78b610 to your computer and use it in GitHub Desktop.
Basic Shell Scripting
#! /bin/bash
# ECHO COMMAND
# echo Hello World!
# VARIABLES
# Uppercase by convention
# Letters, numbers, underscores
NAME="Bob"
# echo "My name is $NAME"
# echo "My name is ${NAME}"
# USER INPUT
# read -p "Enter your name: " NAME
# echo "Hello $NAME, nice to meet you!"
# SIMPLE IF STATEMENT
# if [ "$NAME" == "Brad" ]
# then
# echo "Your name is Brad"
# fi
# IF-ELSE
# if [ "$NAME" == "Brad" ]
# then
# echo "Your name is Brad"
# else
# echo "Your name is NOT Brad"
# fi
# ELSE-IF (elif)
# if [ "$NAME" == "Brad" ]
# then
# echo "Your name is Brad"
# elif [ "$NAME" == "Jack" ]
# then
# echo "Your name is Jack"
# else
# echo "Your name is NOT Brad or Jack"
# fi
# COMPARISON
# NUM1=31
# NUM2=5
# if [ "$NUM1" -gt "$NUM2" ]
# then
# echo "$NUM1 is greater than $NUM2"
# else
# echo "$NUM1 is less than $NUM2"
# fi
########
# val1 -eq val2 Returns true if the values are equal
# val1 -ne val2 Returns true if the values are not equal
# val1 -gt val2 Returns true if val1 is greater than val2
# val1 -ge val2 Returns true if val1 is greater than or equal to val2
# val1 -lt val2 Returns true if val1 is less than val2
# val1 -le val2 Returns true if val1 is less than or equal to val2
########
# FILE CONDITIONS
# FILE="test.txt"
# if [ -e "$FILE" ]
# then
# echo "$FILE exists"
# else
# echo "$FILE does NOT exist"
# fi
########
# -d file True if the file is a directory
# -e file True if the file exists (note that this is not particularly portable, thus -f is generally used)
# -f file True if the provided string is a file
# -g file True if the group id is set on a file
# -r file True if the file is readable
# -s file True if the file has a non-zero size
# -u True if the user id is set on a file
# -w True if the file is writable
# -x True if the file is an executable
########
#CASE STATEMENT
# read -p "Are you 21 or over? Y/N " ANSWER
# case "$ANSWER" in
# [yY] | [yY][eE][sS])
# echo "You can have a beer :)"
# ;;
# [nN] | [nN][oO])
# echo "Sorry, no drinking"
# ;;
# *)
# echo "Please enter y/yes or n/no"
# ;;
# esac
# SIMPLE FOR LOOP
# NAMES="Brad Kevin Alice Mark"
# for NAME in $NAMES
# do
# echo "Hello $NAME"
# done
# FOR LOOP TO RENAME FILES
# FILES=$(ls *.txt)
# NEW="new"
# for FILE in $FILES
# do
# echo "Renaming $FILE to new-$FILE"
# mv $FILE $NEW-$FILE
# done
# WHILE LOOP - READ THROUGH A FILE LINE BY LINE
# LINE=1
# while read -r CURRENT_LINE
# do
# echo "$LINE: $CURRENT_LINE"
# ((LINE++))
# done < "./new-1.txt"
# FUNCTION
# function sayHello() {
# echo "Hello World"
# }
# sayHello
# FUNCTION WITH PARAMS
# function greet() {
# echo "Hello, I am $1 and I am $2"
# }
# greet "Brad" "36"
# CREATE FOLDER AND WRITE TO A FILE
# mkdir hello
# touch "hello/world.txt"
# echo "Hello World" >> "hello/world.txt"
# echo "Created hello/world.txt"
@alphaoumardev
Copy link

thank you

@BODY1998
Copy link

Thanks dude :)

@coltenkrauter
Copy link

So, I whipped up a little shell script to sort of streamline creating feature branches. I threw this into my bash profile and run it with an alias fb. feature-brancher.sh

Curious, do any of you have shell scripts to improve productivity? If so, please share a link.

@jlee31
Copy link

jlee31 commented Jan 21, 2025

Thank you sir.

@kengsengwang
Copy link

Thank you sir

@ndongchrist
Copy link

Thank you sir

@AbdulNa
Copy link

AbdulNa commented Aug 28, 2025

insight full :)

@BCBennyCAN
Copy link

That was really helpful for my last lesson on basic Linux. Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment