Bash test if file exists
Using bash I needed to check that a file exists, then do something. This one turns out to be super simple. I wanted to conditionally load a db file if it existed in this case.
What I needed was, a check for the file in bash. Then execute the command. In this instance it was to load a postgres restore file.
{.bash} db_dump="/home/vagrant/files/db.dump"
{.bash} [ -f $db_dump ] && printf "Loading DB...\n";sudo su postgres -c "pg_restore -d db_name_here $db_dump;" || printf "No db dump to load\n"
Another way to write this is to use a full if/else conditional. Admittedly this is a little cleaner.
{.bash} db_dump="/home/vagrant/files/db.dump" if [ -f "$db_dump" ] then printf "Loading DB...\n"; sudo su postgres -c "pg_restore -d db_name_here $db_dump;" else printf "No DB file found.\n"; fi