Я создал небольшой скрипт, который позволяет вращать значения в массиве.Цель состояла в том, чтобы сместить значения вправо и чтобы последнее значение массива стало первым значением для создания поворота.
Цель упражнения состояла в том, чтобы сделать это без использования временного массива, ночтобы создать временную переменную, в которую я могу поместить одно из значений массива, затем сдвинуть все значения вправо и затем поместить временную переменную в массив.
Итак, мой сценарий:
#!/bin/bash
declare -a array
empty=0
size()
{
read -p " How many box in you array ? : " size
}
array_creation()
{
counter=1
while [ $counter -le $size ]
do
array[$counter]=$counter
let "counter = counter + 1"
done
}
loop()
{
while [ $empty -eq 0 ]
do
clear
echo "${array[*]}"
tmp=$(echo "${array[$size]}")
counter=$size
while [ $counter -ge 2 ]
do
let " move = counter - 1"
array[$counter]=$(echo "${array[$move]}")
let "counter = counter - 1"
done
array[1]=$tmp
echo ""
loop_works
done
}
loop_works()
{
read -p " Press N to shift boxes to the right : " add
counter=$(($size + 1))
}
size
array_creation
loop
Когда я нажимаю "n", мой сценарий работает отлично, но я не удовлетворен ... Я считаю, что мой сценарий "слишком сложен", ясделал это очень трудно для себя из-за этого простого упражнения ...
Можете ли вы показать, как я могу упростить свой сценарий?
Спасибо!