Shell script syntax does not allow space in assignments, so:
source_dir = ${source_dir}
should be
source_dir=${source_dir}
Also, reading the parameter file does not work that way..
You can use the source or . command to do this, but also here the should be no spaces in assignments in that source file.
source ./parameter_file
Instead of sourcing the parameter file, you can also get the information with the read command.
Lastly, if you want to reference a shell variable, you need to prepend a $-sign.
As we don't know what ftp.sh nor ftp_parameters.txt are, we can't comment on their functionality. Certainly they don't have much in common with file_copy.sh nor parameter_file.txt , as the syntax errors Scrutinized commented on are still around in the latter, and we don't see the former used anywhere. Maybe, if ftp.sh contains sourcing its first positional parameter (which needs to be sanitized, as repeated before), and then calls / sources file_copy.sh , we get to something working.