The following shell script might work just fine on many of the available shell interpreters but the same would fail with the ‘test: argument expected’ error if you try to execute it under sh on Solaris platform.
#!/usr/bin/sh touch /tmp/i_exist if [ -e /tmp/i_exist ]; then echo "file exists!" fi
So, what we are trying in the above script is to check if the given file exists using shell’s [condition].
As per Solaris test(1):
-e file — True if file exists. (Not available in sh.)
A simple solution to this issue is to use ‘-f’ instead. It checks for the existence of regular files and supposed to work on most of existing shell interpreters.