The easiest method for reading arguments can be described as follows;
Each argument is referenced and parsed by the $IFS or currently defined internal file separator. The default character is a space.
For example, take the following; # ./script.sh arg1 arg2
The argument list in that example is arg1 = $1 and arg2 = $2 which can be rewritten as arg1 arg2 = $@.
Another note is the use of a list of logs, how often does that change? My assumption is daily. Why not use the directory output as the array of your iterative loop? For example;
for i in $(ls /path/to/logs); do
./workaround.sh $i;
done
Or better yet, move on to use of functions in bash to eliminate clutter.
function process_file()
{
# transfer file code/command
}
function iterate_dir()
{
local -a dir=($(ls $1))
for file in ${dir[@]}; do
process_file $file
done
}
iterate_dir /path/to/log/for
While these are merely suggestions to improve your shell scripting knowledge I must know if there is an error you are getting and would also need to know the details of each scripts code and or functionality. Making the use of the -x argument helps debug scripting as well.
If you are simply transferring logs you may wish to do away with the scripts all together and make use of rsync, rsyslog or syslog as they all are much more suited for the task in question.