cannot execute binary file does not mean the file lacks execute permissions. In fact, running a script as "bash filename", does not need the executable permissions on the filename.
The error message is telling you that the script file is not an actual script file, but a binary file, probably an executable. If that is the case, do not do:
bash +x filename
just do:
filename
Additionally, to pass arguments to the script, you can do so like this:
scriptfile arg1 arg2 arg3
then refer inside your script as $1, $2, $3. Or $*to refer to all of them.
EDIT:
Also note that to execute a script you do not need to use bash scriptfile, you may just run scriptfile. In that case, scriptfile must have the executable permission (i.e., chmod +x scriptfile). Additionally, if the file is in the current directory, but the . is not part of the PATHvariable, the scriptfile will not be found. In that case you should execute your scriptfile as ./scriptfile
Your script would change to:
VARIABLE_1=<VALUE>
...
./script_2.sh "$VARIABLE_1"
./script_3.sh "$VARIABLE_1"
You no longer need to export the VARIABLE_1. The quotes are necessary to make sure the contents of VARIABLE_1 are passed as a single argument. script_2.sh and script_3.sh will see the value as $1. If the VARIABLE_1 has spaces in it, and you omit the quotes, each word will be pass as a separate value. That is, $1 will have the first word, $2the second, etc.
/usr/bin/shfrom the command-line. It looks likescript_3.shmakes a call to/usr/bin/shsomewhere.xtrace(-x) output immediately preceding the error?