Исходя из предоставленных нам данных, я предполагаю следующее:
Так что в текущей ситуации лучше всего:
В зависимости от результата вы просто:
Если бы вы использовали parted
вместо gparted
для изменения размера, вы могли бы остановить изменение размера, поскольку оно выполняет изменение размера, сначала перемещая последние выделенные блоки, а затем переходит на передний план и обновляет только раздел. стол, если все прошло нормально.
Однако поскольку вы используете графический интерфейс, результаты непредсказуемы , так что сейчас лучше всего подождать...
Примечание:В следующий раз сделайте резервную копию системы, прежде чем делать подобные вещи, и используйте командную строку вместо графического интерфейса, что заставляет вас думать, прежде чем делать....
Хотя вы можете делать то, о чем просите, это делает код излишне сложным и трудным для сопровождения. Я бы предложил эту альтернативу:
#!/bin/bash
tArray=( 6 10 20 )
for((i=0; i<${#tArray[@]} -1; i++));
do
dArray[i]=$((tArray[i+1] - tArray[i]))
done
for((i=0; i<${#dArray[@]}; i++));
do
echo "${tArray[i+1]} - ${tArray[i]} = ${dArray[i]}"
done
Запуск с возвратом:
$ foo.sh
10 - 6 = 4
20 - 10 = 10
Для справки, вот как бы вы это сделали, используя вашу первоначальную идею:
#!/bin/bash
t0=6
t1=10
t2=20
for i in {0..1}; do
tVarName1=t${i}
tVarName2=t$((i+1))
dVarname=d${i}
eval "$dVarname=$(( ${!tVarName2} - ${!tVarName1} ))"
done
echo "D0: $d0"
echo "D1: $d1"