我正在尝试编写一个 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
然后恢复它......