Created
April 14, 2017 14:37
-
-
Save derekbtw/3fda198893889def7316e72711bb3b8c to your computer and use it in GitHub Desktop.
Bash script to create a header for bash scripts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash - | |
#title :mkscript.sh | |
#description :This script will make a header for a bash script. | |
#author :bgw | |
#date :20111101 | |
#version :0.4 | |
#usage :bash mkscript.sh | |
#notes :Install Vim and Emacs to use this script. | |
#bash_version :4.1.5(1)-release | |
#============================================================================== | |
today=$(date +%Y%m%d) | |
div======================================= | |
/usr/bin/clear | |
_select_title(){ | |
# Get the user input. | |
printf "Enter a title: " ; read -r title | |
# Remove the spaces from the title if necessary. | |
title=${title// /_} | |
# Convert uppercase to lowercase. | |
title=${title,,} | |
# Add .sh to the end of the title if it is not there already. | |
[ "${title: -3}" != '.sh' ] && title=${title}.sh | |
# Check to see if the file exists already. | |
if [ -e $title ] ; then | |
printf "\n%s\n%s\n\n" "The script \"$title\" already exists." \ | |
"Please select another title." | |
_select_title | |
fi | |
} | |
_select_title | |
printf "Enter a description: " ; read -r dscrpt | |
printf "Enter your name: " ; read -r name | |
printf "Enter the version number: " ; read -r vnum | |
# Format the output and write it to a file. | |
printf "%-16s\n\ | |
%-16s%-8s\n\ | |
%-16s%-8s\n\ | |
%-16s%-8s\n\ | |
%-16s%-8s\n\ | |
%-16s%-8s\n\ | |
%-16s%-8s\n\ | |
%-16s%-8s\n\ | |
%-16s%-8s\n\ | |
%s\n\n\n" '#!/bin/bash -' '#title' ":$title" '#description' \ | |
":${dscrpt}" '#author' ":$name" '#date' ":$today" '#version' \ | |
":$vnum" '#usage' ":./$title" '#notes' ':' '#bash_version' \ | |
":${BASH_VERSION}" \#$div${div} > $title | |
# Make the file executable. | |
chmod +x $title | |
/usr/bin/clear | |
_select_editor(){ | |
# Select between Vim or Emacs. | |
printf "%s\n%s\n%s\n\n" "Select an editor." "1 for Vim." "2 for Emacs." | |
read -r editor | |
# Open the file with the cursor on the twelth line. | |
case $editor in | |
1) vim +12 $title | |
;; | |
2) emacs +12 $title & | |
;; | |
*) /usr/bin/clear | |
printf "%s\n%s\n\n" "I did not understand your selection." \ | |
"Press <Ctrl-c> to quit." | |
_select_editor | |
;; | |
esac | |
} | |
_select_editor |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment