You want to test the existence with -f and then create a file. But what happens, if between test and creation another task creates the file?
mktemp can resolve this problem:
filename=$( mktemp ./file1-XXXXXXXXXX ) || exit 1
In this case, an empty file is created (like using
XXXXXXXXXX part is replaced by a random alphanumeric string. The file anme is stored into
filename. On error
exit 1 is executed.