diff --git a/vmcreate.sh b/vmcreate.sh index 52ba991..3a1cc9e 100644 --- a/vmcreate.sh +++ b/vmcreate.sh @@ -121,14 +121,14 @@ mksnippet () { REMOVE () { if [ $harule ]; then ha-manager rules remove $harule; fi - for line in (cat hosts.tmp) + while IFS= read -r line || [[ -n "$line" ]]; do ip=$(echo -n "$line" | cut -d ';') vmid=$(get_vmid "$ip") qm stop $vmid echo "VM $vmid is stopping." - done - for line in (cat hosts.tmp) + done < hosts.tmp + while IFS= read -r line || [[ -n "$line" ]]; do ip=$(echo -n "$line" | cut -d ';') vmid=$(get_vmid "$ip") @@ -145,7 +145,7 @@ REMOVE () { echo "VM $vmid successfully removed" rm "$snippet" && echo "Snippet $snippet removed" - done + done < hosts.tmp } # Обрабатываем опции @@ -289,7 +289,7 @@ if [[ (head -c 7 "$pubkey") -ne "ssh-rsa" ]]; then fi # Проверяем, что нет ВМ в списке и нет сниппетов -for line in $(cat hosts.tmp) +while IFS= read -r line || [[ -n "$line" ]]; do ip=$(echo -n "$line" | cut -d ';' -f 1) vmid=$(get_vmid "$ip") @@ -301,12 +301,12 @@ do echo "Snippet $snippet exists. Aborting" exit 7 fi -done +done < hosts.tmp # Подготовительные операции закончены, приступаем к выполнению. read -p "Script is ready to create $(cat hosts.tmp | wc -l) VMs. Press Enter" -for line in $(cat hosts.tmp) +while IFS= read -r line || [[ -n "$line" ]]; do ip=$(echo -n $line | cut -d ';' -f 1) vlan=$(echo -n $ip | cut -d '.' -f 3) @@ -358,7 +358,7 @@ do echo "HA rule added" if [ $? -ne0 ]; then echo "Error creating HA rule"; fi fi -done +done < hosts.tmp # Финальная часть rm hosts.tmp