LinuxForum.Fans
Тема

Меню файловой системы на shell. Помогите, пожалуйста

Автор: K_Anastasia 1 сообщений 1860 просмотров
19.11.2014 14:35 #401632

Нужно: с помощью утилиты dialog, на языке shell построить меню, которое работает с файловой системой и выполняет функции: удаление, создание,перемещение,переименование файла.
Пытаюсь пока реализовать хотя бы одну из функций, но при выполнении команды, например копирования файла вылезает ошибка, что файла такого в каталоге не имеется. И показывается адрес этого файла, который я выбираю, и к этому адресу спереди приплюсованы еще какие-то странные символы типа: "/033[" и так далее, а потом адрес моего файла. Где-то цепляются эти символы.
В чем моя ошибка? не так передаю адрес файла?

text
#!/bin/bash
DIALOG=${DIALOG=dialog}
HOME=/home/fzo
FILE=$HOME
for n in .cshrc .profile .bashrc
do
    if test -f $HOME/$n ; then
        FILE=$HOME/$n
        break
    fi
done

FILE=`$DIALOG --stdout --title "Please choose a file" --fselect ${FILE} 14 48`

case $? in 0) tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$ trap "rm -f $tempfile" 0 1 2 5 15 $DIALOG --clear --title "File_system" \ --menu "Choose option:" 20 51 2 \ "Rename" "" \ "Delete" "" 2> $tempfile retval=$? choice=`cat $tempfile` if test [Rename=$tempfile] ; then tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$ trap "rm -f $tempfile" 0 1 2 5 15 $DIALOG --title "Ввод данных" --clear \ --inputbox "Input new filename:" 16 51 2> $tempfile retval=$? filnam=`cat $tempfile` cp -a $FILE $filnam fi ;; 1) echo "Cancel pressed." ;; 255) echo "Box closed.";; esac

Войдите или зарегистрируйтесь, чтобы ответить.