Fix bash scripts

This commit is contained in:
Fabio Scotto di Santolo
2020-08-22 10:15:09 +02:00
parent 4cc88d2f6e
commit 898c19b02b
5 changed files with 12977 additions and 3 deletions

64
chapter1/coprocess.sh Executable file
View File

@@ -0,0 +1,64 @@
#!/usr/bin/env bash
#
# SCRIPT: coprocess.sh
# AUTHOR: Fabio Scotto di Santolo
# DATE: 29/07/2020
# REV: 1.1.A
#
# PLATFORM: Not platform dependent
#
# PURPOSE:
#
# REV LIST:
#
##########################################################
# DEFINE FUNCTIONS HERE
##########################################################
function trap_exit
{
# Tell the co-process to break out of the loop
break_out='Y'
print -p $break_out # Use "print -p" to talk to the co-process
}
function proc_watch
{
# This function is started as a co-process
while : # Loop forever
do
read $break_out # Do NOT need "-p" to read!
if [[ $break_out == 'Y' ]];
then
return 0
fi
done
}
##########################################################
# BEGINNING OF MAIN
##########################################################
trap 'trap_exit; exit 2' 1 2 3 15
total_seconds=300
break_out='N'
coproc proc_watch # Start proc_watch as a co-process!!!
pw_pid=$1 # Process ID of the last background job
until [ total_seconds -eq 0 ];
do
(( total_seconds=total_seconds - 1 ))
sleep 1
done
break_out='Y'
# Use "print -p" to communicate with the co-process variable
print -p $break_out
kill $pw_pid # Kill the background co-process
exit 0
# End of script

38
chapter1/shifting.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/usr/bin/env bash
#
# SCRIPT: shifting.sh
# AUTHOR: Fabio Scotto di Santolo
# DATE: 28/07/2020
# REV: 1.1.A
#
# PLATFORM: Not platform dependent
#
# PURPOSE: This script is used to process all of the tokens which
# are pointed to by the command-line arguments $1, $2, $3, etc...
#
# REV LIST:
#
##########################################################
# DEFINE FILES AND VARIABLES HERE
##########################################################
total=0 # initialize the total counter to zero
##########################################################
# BEGINNING OF MAIN
##########################################################
# Start a while loop
for token in $*
do
total=`expr $total + 1` # A little math in the
# shell script, a running
# total of tokens processed.
shift # Grab the next token, i.e. $2 become $1
done
echo "Total number of token processed: $total"
# End of script