コマンドでカスタム変数を使用する場合の条件の作成方法

コマンドでカスタム変数を使用する場合の条件の作成方法

2つの変数でユーザーから入力を受け取るスクリプトがあります。次に、ifの条件に入力されたコマンドでこれらの変数を使用しようとします。しかし、ユーザー入力値が私の変数を置き換えないため、私のコマンドは機能しません。

# Get acl and dc values
echo "Type the ACL name:"
read acl
echo "Type the DATACENTER name"
read dc
# see if sw-list-cisco file exists in ~/$acl directory"
if [ ` ls -1 ~/$acl/sw-list-cisco > /dev/null | wc -l ` -gt 0 ];
then
    echo "Going to do something"
else
     echo "no match !!!!!!!!!!!!!"
fi

条件 このif [ ` ls -1 ~/"$acl"/sw-list-cisco > /dev/null | wc -l ` -gt 0 ];$acl をユーザー入力値に置き換えないようです。sw-list-ciscoディレクトリに存在するかどうかを手動で確認しました~/$acl。私は何を見逃していますか?

ベストアンサー1

解析が必要な場合はほとんどありません。ls

この場合、次のようにしてこれを行うことができます。

if [ -f "$HOME/$acl/sw-list-cisco" ]; then

-f指定された名前が存在し、通常のファイルの名前であるかどうかをテストするためにテストを使用しています。$HOME代わりに使用しています~~引用符内の変数ではありません(もう少し$HOME説明すると、IMHO)。

おすすめ記事