The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"  Меню файловой системы на shell. Помогите, поажлуйста"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

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

#!/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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "  Меню файловой системы на shell. Помогите, поажлуйста"  +/
Сообщение от DeadLoco (ok) on 20-Ноя-14, 04:43 
> странные символы типа: "/033["

Это ESC[ - стандартный управляющий символ терминала, который используется для управления цветами, миганием и прочей ботвой. Откуда он берется - как-то лениво выяснять.

Попробуйте натыкать в скрипт разной отладки, вроде

. . . . .
done

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

### DEBUGGING ###
echo " '$FILE' "


case $? in
. . . . .


Добрый совет: вместо вызова сабшелла через классику `command -arg` пользуйтесь современным синтаксисом $(command -arg) - гораздо лучше видно, где и что сабшеллится.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "  Меню файловой системы на shell. Помогите, поажлуйста"  +/
Сообщение от Олег Петрович on 22-Ноя-14, 18:18 
И все переменные надо переписать исключительно в таком виде
"${VAR}"
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "  Меню файловой системы на shell. Помогите, поажлуйста"  +/
Сообщение от Nesk on 30-Ноя-14, 19:43 
Может у тебя alias на команду cat?
вот в таком виде отработало без проблем
$dialog --title "Ввод данных" --clear --inputbox "Input new filename:" 16 51 2> tempfile
$cat tempfile
$cat -tv  tempfile - тоже не показал ничего лишнего

покажи вывод команды alias

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру