以下を実行するdd移行スクリプトを作成しようとしています。
- ユーザー入力(最大4つ)を「array」という配列に読み込みます。ユーザーは、移行する論理ボリュームの名前を入力します。
- 配列の各要素を保存したら、次を実行します。
/sbin/lvscan | grep -E '"array[0]"|"array[1]"|"array[2]"|"array[3]"’
- 複数のSSH接続が行われ、各論理ボリュームはddを介してユーザーがIPを入力し、変数に格納されている特定のホストに移行されます。
私は現在以下を持っています:
#!/bin/bash
echo "Enter upto 4 SRVID's seperated by a space"
while read SRVIDS
do
[ "$SRVIDS" == "done" ] && break
array=("${array[@]}" $SRVIDS)
done
/sbin/lvscan | grep -E '"array[0]"|"array[1]"|"array[2]"|"array[3]"' 2&>1
私は何が間違っていましたか?論理ボリュームパスを取得するためにgrepを行うことはできません。
答え1
すべての配列要素をリストする必要はありません。
IFS="|"
grep -E "${array[*]}"
古いものを保存しIFS
て復元することを忘れないでください。