История изменений
Исправление vachicul, (текущая версия) :
Выводится список для выбора
entry
path/
Выбираем вторую строку - path/ Программа выводит содержимое path/
entry2
path2/
path3/
Входим дальше, выбираем path3/ Выводим содержимое path3/
path4/
path5/
path6/
Выбираем 3, входим в каталог path6/ Выводим содержимое path6/
path7/
path8/
path9/
entry10
Теперь выбираем 4 - entry10 - это запись. Обрабатываем её и выводим тот же список path6/
path7/
path8/
path9/
entry10
Тепрь выбираем 0 - то есть вернуться в родителя path3/, для этого нужно что бы программа знала полный путь path/path3/ и вывела список из него
path4/
path5/
path6/
Ещё раз выбираем 0 и возвращаемся в /path
entry2
path2/
path3/
Ещё раз жмём 0 и возвращаемся в корень /
entry
path/
как это реализовано в моих циклах с ограниченной глубиной
list=$(ls -l /parent/)
while true; do
echo "$list"
read str
if [ $str = 0 ]; then break; fi
choose=$(echo "$list" | sed -n "$str"p)
check=$(echo $choose | grep "/")
while true; do
if [ -n "$check" ]; then
list2=$(ls -l /parent/$choose)
echo "$list2"
read str
if [ $str = 0 ]; then break; fi
choose2=$(echo "$list2" | sed -n "$str"p)
check=$(echo $choose2 | grep "/")
while true; do
if [ -n "$check" ]; then
list3=$(ls -l /parent/$choose$choose2)
echo "$list3"
read str
if [ $str = 0 ]; then break; fi
choose3=$(echo "$list3" | sed -n "$str"p)
check=$(echo $choose3 | grep "/")
while true; do
if [ -n "$check" ]; then
list4=$(ls -l /parent/$choose$choose2$choose3)
echo "$list4"
read str
if [ $str = 0 ]; then break; fi
choose4=$(echo "$list4" | sed -n "$str"p)
rm /parent/$choose$choose2$choose3$choose4
else
rm /parent/$choose$choose2$choose3
fi; done
else
rm /parent/$choose$choose2
fi; done
else
rm /parent/$choose
fi; done
done
Исправление vachicul, :
Выводится список для выбора
entry
path/
Выбираем вторую строку - path/ Программа выводит содержимое path/
entry2
path2/
path3/
Входим дальше, выбираем path3/ Выводим содержимое path3/
path4/
path5/
path6/
Выбираем 3, входим в каталог path6/ Выводим содержимое path6/
path7/
path8/
path9/
entry10
Теперь выбираем 4 - entry10 - это запись. Обрабатываем её и выводим тот же список path6/
path7/
path8/
path9/
entry10
Тепрь выбираем 0 - то есть вернуться в родителя path3/, для этого нужно что бы программа знала полный путь path/path3/ и вывела список из него
path4/
path5/
path6/
Ещё раз выбираем 0 и возвращаемся в /path
entry2
path2/
path3/
Ещё раз жмём 0 и возвращаемся в корень /
entry
path/
как это реализовано в моих циклах с ограниченной глубиной
list=$(ls -l /parent/)
while true; do
echo "$list"
read str
if [ $str = 0 ]; then break; fi
choose=$(echo "$list" | sed -n "$str"p)
check=$(echo $choose | grep "/")
while true; do
if [ -n "$check" ]; then
list2=$(ls -l /parent/$choose)
echo "$list2"
read str
if [ $str = 0 ]; then break; fi
choose2=$(echo "$list2" | sed -n "$str"p)
check=$(echo $choose2 | grep "/")
while true; do
if [ -n "$check" ]; then
list3=$(ls -l /parent/$choose$choose2)
echo "$list3"
read str
if [ $str = 0 ]; then break; fi
choose3=$(echo "$list3" | sed -n "$str"p)
check=$(echo $choose3 | grep "/")
while true; do
if [ -n "$check" ]; then
list4=$(ls -l /parent/$choose$choose2$choose3)
echo "$list4"
read str
if [ $str = 0 ]; then break; fi
choose4=$(echo "$list4" | sed -n "$str"p)
rm /parent/$choose$choose2$choose3$choose4
else
rm /parent/$choose$choose2$choose3
fi; done
else
rm /parent/$choose$choose2
fi; done
else
rm /parent/$choose
fi; done
done
Исправление vachicul, :
Выводится список для выбора
entry
path/
Выбираем вторую строку - path/ Программа выводит содержимое path/
entry2
path2/
path3/
Входим дальше, выбираем path3/ Выводим содержимое path3/
path4/
path5/
path6/
Выбираем 3, входим в каталог path6/ Выводим содержимое path6/
path7/
path8/
path9/
entry10
Теперь выбираем 4 - entry10 - это запись. Обрабатываем её и выводим тот же список path6/
path7/
path8/
path9/
entry10
Тепрь выбираем 0 - то есть вернуться в родителя path3/, для этого нужно что бы программа знала полный путь path/path3/ и вывела список из него
path4/
path5/
path6/
Ещё раз выбираем 0 и возвращаемся в /path
entry2
path2/
path3/
Ещё раз жмём 0 и возвращаемся в корень /
entry
path/
как это реализовано в моих циклах с ограниченной глубиной
list=$(ls -l /parent/)
while true; do
echo "$list"
read str
if [ $str = 0 ]; then break; fi
choose=$(echo "$list" | sed -n "$str"p)
check=$(echo $choose | grep "/")
while true; do
if [ -n "$check" ]; then
list2=$(ls -l /parent/$choose)
echo "$list2"
read str
if [ $str = 0 ]; then break; fi
choose2=$(echo "$list2" | sed -n "$str"p)
while true; do
if [ -n "$check" ]; then
list3=$(ls -l /parent/$choose$choose2)
echo "$list3"
read str
if [ $str = 0 ]; then break; fi
choose3=$(echo "$list3" | sed -n "$str"p)
while true; do
if [ -n "$check" ]; then
list4=$(ls -l /parent/$choose$choose2$choose3)
echo "$list4"
read str
if [ $str = 0 ]; then break; fi
choose4=$(echo "$list4" | sed -n "$str"p)
rm /parent/$choose$choose2$choose3$choose4
else
rm /parent/$choose$choose2$choose3
fi; done
else
rm /parent/$choose$choose2
fi; done
else
rm /parent/$choose
fi; done
done
Исходная версия vachicul, :
Выводится список для выбора
entry
path/
Выбираем вторую строку - path/ Программа выводит содержимое path/
entry2
path2/
path3/
Входим дальше, выбираем path3/ Выводим содержимое path3/
path4/
path5/
path6/
Выбираем 3, входим в каталог path6/ Выводим содержимое path6/
path7/
path8/
path9/
entry10
Теперь выбираем 4 - entry10 - это запись. Обрабатываем её и выводим тот же список path6/
path7/
path8/
path9/
entry10
Тепрь выбираем 0 - то есть вернуться в родителя path3/, для этого нужно что бы программа знала полный путь path/path3/ и вывела список из него
path4/
path5/
path6/
Ещё раз выбираем 0 и возвращаемся в /path
entry2
path2/
path3/
Ещё раз жмём 0 и возвращаемся в корень /
entry
path/
как это реализовано в моих циклах с ограниченной глубиной
list=$(ls -l /parent/)
while true; do
echo "$list"
read str
if [ $str = 0 ]; then break; fi
choose=$(echo "$list" | sed -n "$str"p)
check=$(echo $choose | grep "/")
while true; do
if [ -n "$check" ]; then
list2=$(ls -l /parent/$choose)
echo "$list2"
read str
if [ $str = 0 ]; then break; fi
choose2=$(echo "$list2" | sed -n "$str"p)
while true; do
if [ -n "$check" ]; then
list3=$(ls -l /parent/$choose$choose2)
echo "$list3"
read str
if [ $str = 0 ]; then break; fi
choose3=$(echo "$list3" | sed -n "$str"p)
while true; do
if [ -n "$check" ]; then
list4=$(ls -l /parent/$choose$choose2$choose3)
echo "$list4"
read str
if [ $str = 0 ]; then break; fi
choose4=$(echo "$list4" | sed -n "$str"p)
rm /parent/$choose$choose2$choose3$choose4
else
rm /parent/$choose$choose2$choose3
fi
else
rm /parent/$choose$choose2
fi
else
rm /parent/$choose
fi
done