How to check file exists via bash script?

2019-03-01 01:12发布

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.

Any suggestion would be appreciated. Thanks.

标签: bash shell
2条回答
Evening l夕情丶
2楼-- · 2019-03-01 01:58

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.

查看更多
走好不送
3楼-- · 2019-03-01 02:01

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 :("
查看更多
登录 后发表回答