13

それで、bashシェルスクリプトでifステートメントに入ろうとしていますが、何か間違っていると思います.とにかく、ここに私のサンプルコードがあります.

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

正しいディレクトリを指していますか? ユーザーに「sd」に入れる何かを入力してもらいたいのですが、そのサブディレクトリが存在する場合は存在すると言い、そうでない場合はelseに行き、存在しないと言います。

4

2 に答える 2

23

試す:

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

また:

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

~引用すると、ホーム ディレクトリへの展開が防止されます。

于 2013-09-29T06:19:08.907 に答える
4

これを試して:-

#!/bin/bash
read sd
if [ -d ~/tmp/"$sd" ]; then
    echo "That directory exists"
else
    echo "That directory doesn't exists"
fi
于 2013-09-29T06:18:59.347 に答える