シェルスクリプトで配列を使用する

シェルスクリプトで配列を使用する

Webサイトのパスを配列として保存しようとすると問題があります。

forループ内で動作します。配列の内容をエコーすると正しく印刷されます。

ところで、If / Else内で配列の特定の部分を別の変数に保存してみましたが、うまくいきませんでした。配列の特定の部分をエコーすると、何も印刷されません。

コードは次のとおりです。

#! /bin/sh

SITES=()
i=0

for d in /var/www/sites/*/;
do (
    PATHWAY=$d
    SITES+=($PATHWAY)
    echo "$i: $PATHWAY"
);  let "i++"
done

read -p 'Enter the number of the website you want to restore. Enter "exit" to quit. ' url

if [ "$url" = "exit" ]
then
    exit 0

else
    RESTORE_URL=${SITES[url]}
fi

ベストアンサー1

select以下はドアを使うのに良い場所のようです。

select path in /var/www/sites/* EXIT; do
    if [[ "EXIT" = "$path" ]]; then
        exit 0
    else
        : do stuff here referencing $path
    fi
done

おすすめ記事