Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- Create () {
- #Authors
- declare -i n=1
- array=()
- while :
- do
- if [ "$n" -ge "2" ]; then
- echo -n "Do you have more authors?[Yes/No]:"
- read result
- if [ "$result" != "Yes" ]; then
- break;
- fi
- fi
- echo -n "Please enter a name of author$n:"
- read author
- echo $author
- if [ "$author" == "" ]; then
- echo "Author input is incorrect"
- else
- array[$n]=$author
- n=$(( n + 1 ))
- fi
- done
- printf "\nAuthors:\n"
- for item in ${array[*]}
- do
- printf " %s\n" $item
- done
- #Titles
- while :
- do
- echo -n "Please enter a title of a book: "
- read title
- if [ "$title" == "" ]; then
- echo "Title is incorrect. Please try again"
- else
- break;
- fi
- done
- printf "\nTitle:\n"
- printf " %s\n" $title
- #Pages
- while :
- do
- echo -n "Please enter a number of pages: "
- read pages
- if [ "$pages" != "" ] && [ $pages -eq $pages 2>/dev/null ] && [ $pages -gt "0" ]; then
- break
- else
- echo "Please write a correct number of pages"
- fi
- done
- printf "\nNumber of pages:\n"
- printf " %s\n" $pages
- #Year
- while :
- do
- echo -n "Please enter a year of book's release: "
- read year
- currentYear=$(date +'%Y')
- if [ "$year" != "" ] && [ $year -eq $year 2>/dev/null ] && [ $year -gt "1000" ] && [ $year -le $currentYear ]; then
- break
- else
- echo "Please write a correct year"
- fi
- done
- printf "\nYear:\n"
- printf " %s\n" $year
- #Other values
- keys=()
- values=()
- declare -i in=0
- while :
- do
- echo -n "Do you want something else(key: value)?[Yes/No]:"
- read result
- if [ "$result" != "Yes" ]; then
- break
- fi
- while :
- do
- echo -n "Please enter a key: "
- read key
- if [ "$key" == "" ]; then
- echo "Key is incorrect. Please try again"
- else
- keys[in]=$key
- break
- fi
- done
- while :
- do
- echo -n "Please enter a value: "
- read value
- if [ "$value" == "" ]; then
- echo "Value is incorrect. Please try again"
- else
- values[$in]=$value
- in=$(( in + 1 ))
- break;
- fi
- done
- done
- printf "\nKeys and values:\n"
- if [[ ${!values[*]} != "0" ]]; then
- for index in ${!values[*]}
- do
- printf "%s: %s\n" ${keys[$index]} ${values[$index]}
- done
- fi
- #Creating a record
- number=1
- while :
- do
- recordName="record$number.txt"
- if [ -f "$recordName" ]; then
- number=$(( number + 1))
- else
- break;
- fi
- done
- #Authors
- for item in ${array[*]}
- do
- echo "author: $item" >> $recordName
- done
- #Titles
- echo "title: $title" >> $recordName
- #Pages
- echo "pages: $pages" >> $recordName
- #Year
- echo "year: $year" >> $recordName
- #Other
- for index in ${!values[*]}
- do
- echo "${keys[$index]}: ${values[$index]}" >> $recordName
- done
- echo "Record is successfully created. Name: $recordName"
- }
- Search () {
- author=""
- title=""
- echo "Do you want to search by author?[Yes/No]"
- read result
- if [ "$result" == "Yes" ]; then
- while :
- do
- echo -n "Please enter an author of a book: "
- read author
- if [ "$author" == "" ]; then
- echo "Author name is incorrect. Please try again"
- else
- break;
- fi
- done
- fi
- echo "Do you want to search by title?[Yes/No]"
- read result
- if [ "$result" == "Yes" ]; then
- while :
- do
- echo -n "Please enter an title of a book: "
- read title
- if [ "$title" == "" ]; then
- echo "Title name is incorrect. Please try again"
- else
- break;
- fi
- done
- fi
- found="false"
- printf "\n"
- for i in record*.txt;
- do
- if [ "$author" != "" ]; then
- result1=`awk '$1 == "author" && $2 == "'"$author"'" {n++}END{print n}' FS=": " $i`
- if [ "$title" == "" ] && [ "$result1" != "" ]; then
- echo "Record with author $author found. Name: $i"
- found="true"
- fi
- fi
- if [ "$title" != "" ]; then
- result2=`awk '$1 == "title" && $2 == "'"$title"'" {n++}END{print n}' FS=": " $i`
- echo $result2;
- if [ "$result2" != "" ]; then
- if [ "$author" != "" ] && [ "$result1" != "" ]; then
- echo "Record with author $author and title $title found. Name: $i"
- found="true"
- else
- echo "Record with title $title found. Name: $i"
- found="true"
- fi
- fi
- fi
- done
- if [ "$author" == "" ] && [ "$title" == "" ]; then
- printf "No input. Impossible to search.\n"
- elif [ "$found" == "false" ]; then
- printf "\nNo result. Nothing found\n"
- fi
- }
- Delete () {
- while :
- do
- echo -n "Please enter a name of record you want to delete: "
- read record
- if [ "$record" == "" ]; then
- echo "Record name is incorrect. Please try again"
- else
- break;
- fi
- done
- if [ -f "$record" ]; then
- rm "$record"
- echo "Record $record was successfully deleted"
- else
- echo "No record with name $record was found"
- fi
- }
- #Main
- if [ "$1" == "" ]; then
- echo "Parameter is empty. Allowed parameters: create, delete, search"
- elif [ "$1" == "create" ]; then
- Create
- elif [ "$1" == "delete" ]; then
- Delete
- elif [ "$1" == "search" ]; then
- Search
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement