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
この場合、次のようにしてこれを行うことができます。
if [ -f "$HOME/$acl/sw-list-cisco" ]; then
-f
指定された名前が存在し、通常のファイルの名前であるかどうかをテストするためにテストを使用しています。$HOME
代わりに使用しています~
。~
引用符内の変数ではありません(もう少し$HOME
説明すると、IMHO)。