Hesam
Hesam

Reputation: 53600

How to check file exists via Bash script?

I'm trying to clone a repo and test it after is done via bash script. I have written my test code based on Bash Shell: Check File Exists or Not.

#!/bin/bash

echo "*** TRY TO INIT INFER ***"

# Clone Infer
INFER_GIT_PATH="https://github.com/facebook/infer.git"
echo "> Try to Clone Infer from ${INFER_GIT_PATH}"
git clone ${INFER_GIT_PATH}

INFER_PATH="/infer/infer/bin/infer"
[ -e ${INFER_PATH} ] && echo "Infer downloaded successfully" || echo "Something went wrong :("

Although repo can be downloaded successfully and /infer/infer/bin/infer.sh exists, I'm always getting Something went wrong :( message.

Upvotes: 1

Views: 255

Answers (2)

yaga
yaga

Reputation: 96

Change it to this (use a relative path):

INFER_PATH="./infer/infer/bin/infer"
[ -e ${INFER_PATH} ] && echo "Infer downloaded successfully" || echo "Something went wrong :("

and it should work.

Upvotes: 2

blue112
blue112

Reputation: 56412

If you want to know if a file exist, you can use -f flag:

[ -f /infer/infer/bin/infer ] && echo "Infer downloaded successfully" || echo "Something went wrong :("

Upvotes: 1

Related Questions