the above line of code is taking first parameter passed to this script as argument.what basename command will do here is if you have given the filename with path like /abc/dir1/dir2/filename then the
Value of FILE that is $FILE will have value "filename".
BANK = 'dirname $1'
the above command will remove the filename and assign path of file to BANK.
BANK will be "/abc/dir1/dir2/"
INFILE = ${FILE}.${BANK}.$$
Now the INFILE will have value "filename./abc/dir1/dir2/.3456"
here $$ gives the process id. in unix each command will run as a process and generates id.and value of $$ may differ in each run.
THis gives no output. What went wrong ? The answer is that the shell thought that we were asking for the variable Xabc, which is uninitialised. The way to deal with this is to put braces around X to seperate it from the other characters. The following gives the desired result:
#!/bin/bash
X=ABC
echo "${X}abc"
------------------
I think that it will clear your doubt.
still you are not getting ...pls give full details so that we can give a solution of same