Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unix Bash Shell Programming if directory exists

So I'm trying to get into an if statement in a bash shell script but I think I'm doing something wrong, anyways here's my sample code.

#!/bin/bash
read sd
if [ -d "~/tmp/$sd" ]; then
    echo "That directory exists"
else
    echo "That directory doesn't exists"
fi
;;

Am I pointing it to the correct directory? I want the user to input something which will be put into "sd" and if that subdirectory exists then it'll say it does, if not then it will go to the else and say it doesn't exist.

like image 427
user2318083 Avatar asked Sep 29 '13 06:09

user2318083


2 Answers

Try:

if [ -d ~/tmp/"$sd" ]; then

or:

if [ -d "$HOME/tmp/$sd" ]; then

Quoting prevents expansion of ~ into your home directory.

like image 190
Barmar Avatar answered Sep 28 '22 06:09

Barmar


Try this:-

#!/bin/bash
read sd
if [ -d ~/tmp/"$sd" ]; then
    echo "That directory exists"
else
    echo "That directory doesn't exists"
fi
like image 28
Rahul Tripathi Avatar answered Sep 28 '22 04:09

Rahul Tripathi