cat global_features_script.sh
.child1_script.sh
.child2_script.sh
function svn_credentials
{
echo -n "Enter the svn username and press [ENTER]: " > /dev/tty
read svn_username
echo -n "Enter the svn commit message and press [ENTER]: " > /dev/tty
read svn_message
echo -n "Enter your svn password and press [ENTER]: " > /dev/tty
read -s svn_password
}
if [ a == b]
then
echo "a is equal to be b"
else
echo "a is not equal to b"
fi
function exit_error
{
echo " There is an error in the command, please check it"
exit 1
}
cat child_script.sh
. global_features_script.sh
svn_wc=temp_dir
svn_credentials # calling function from global_features_script.sh
svn commit $svn_wc -m "$svn_message" --username $svn_username --password $svn_password
When i execute: . child_script.sh
expected output: I need to get run only one function (svn_credentails) from global_features_script.sh
output i am getting is: its calling all other functions and also other shell scripts that are listed in global_features_script.sh
From my understanding, the
. master_script.shwill just insert the master script into the execution of thechild_script.sh, so you’ll actually be running both scripts. The simplest thing, in my opinion, would be to just create acommon_functions.shheader file that has all the common functions in it, and then just source that header file in either master or child.A quick syntax note, i’d recommend using
source master_script.shrather than the.. It should be functionally the same, but it’s slightly cleaner and more readable.