The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Дескриптор файла таблицы Ashaman0 UNIX перспективных И опытных пользователей 6 12-03-2007 02:54 PM
Файл описатель постоянная Вино Программирования высокого уровня 4 05-18-2005 02:18 AM
Дескриптор файла справки rahulrathod UNIX для чайников Вопросы И Ответы 3 10-14-2004 06:08 AM
Файл деятельности (открытое / закрытое) дескриптор файла, используя информацию KORN оболочки сценариев Гэри Данну UNIX для чайников Вопросы И Ответы 3 06-07-2004 02:54 PM
плохой файл дескрипторов? FTB UNIX для чайников Вопросы И Ответы 1 02-20-2002 07:19 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 06-04-2008
robotball robotball is offline
Зарегистрированный пользователь
  
 

Регистрация: Jun 2008
Сообщений: 8
Question Передача файлов дескриптора

Я пытаюсь право функции, которые использует дескриптор файла для записи в файл журнала. Проблема заключается в том, что в заявлении для печати файла дескриптора называется плохой. Теперь, когда я впервые открыть файл и распечатать его в f_open функцию, передавая дескриптор к f_print_log все работает хорошо, однако, когда я вернулся в файл с дескриптором logtest.sh, а затем пытаться пройти его f_print_log получить плохой дескриптор файла. Любая помощь будет признателен. Вот мои функции и призывая Сценарий:

********* Эти функции в f_log.sh
Функция f_open_log
(
next_fh \u003d $ LOG_FH_COUNTER
EVAL "EXEC $ next_fh> $ 1"

f_print_log $ next_fh "Log файл открыт"
((LOG_FH_COUNTER \u003d LOG_FH_COUNTER + 1))

Эхо $ () next_fh
вернуться 0
)

Функция f_print_log
(
принт-U $ 1 $ 2
вернуться 0
)
************************************************** *

logtest.sh ->

#! / BIN / KSH

. f_log.sh

типографским-я LOG_FH_COUNTER \u003d 3

LOG \u003d $ (f_open_log bigfile)
f_print_log $ LOG "Это тест"

выезд
Old 06-04-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Модератор
  
 

Регистрация: Декабрь 2003
Откуда: Florida
Сообщений: 1929
Какую конкретную версию KSH вы используете? ksh88, phksh или ksh93?
Old 06-05-2008
robotball robotball is offline
Зарегистрированный пользователь
  
 

Регистрация: Jun 2008
Сообщений: 8
Спасибо за ответ. Я ksh88 работает.
Old 06-05-2008
robotball robotball is offline
Зарегистрированный пользователь
  
 

Регистрация: Jun 2008
Сообщений: 8
Я нашел то, что является причиной плохой дескриптор файла, однако я не знаю, как получить funcitonallity хочу работать. Я оставил линейный выход из f_print_log функции, как я пытался не делать мою должность долго. Эта функция должна быть

Функция f_print_log
(
[[$ VERBOSE \u003d\u003d 0]] И И печать $ 2
принт-U $ 1 $ 2
вернуться 0
)

Так что, если я дал подробный вариант в logtest.sh, вывод будет написана на экране, и файл, однако при f_open_log называется и он пишет "Журнал открыть файл" с помощью подпрограммы f_print_log как дескриптор файла и строки, которые передаются Вернуться к logtest.sh которая создает плохой описатель.

Любые предложения. Я хотел бы сохранить файл журнала открыл линию, если я могу. Спасибо.
Old 06-05-2008
эпоха era is offline Forum Advisor  
Гердер бесполезных Кошки (В субботний)
  
 

Регистрация: Mar 2008
Местоположение: / там / это / только / BIN / ш
Сообщений: 3652
Я не думаю, что описатель будет сохраняться в основном корпусе, когда вы запускаете его изнутри backticks. По крайней мере, что в данном случае, с Баш.
Old 06-06-2008
robotball robotball is offline
Зарегистрированный пользователь
  
 

Регистрация: Jun 2008
Сообщений: 8
Найдено решение. Я добавил дополнительный аргумент в обычной f_print_log превратить многословными Выкл. Я использую это в обычной f_open_log и все работает прекрасно.
Old 06-08-2008
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Модератор
  
 

Регистрация: Декабрь 2003
Откуда: Florida
Сообщений: 1929
Проблема заключается в следующей строке кода
Код:
LOG=$(f_open_log bigfile)
Это приводит к дескриптор файла будет закрыто. Один обхода заключается в том, чтобы использовать глобальную переменную, как показано в следующем примере
Код:
#!/bin/ksh88

typeset -i fh

function open_log
{
    next=${LOG_FH_COUNTER}
    eval "exec ${next}>$1"
    fh=${next}

    print_log ${next} "Log file opened"
    ((LOG_FH_COUNTER=LOG_FH_COUNTER+1))

    echo ${next}
}

function print_log
{
    print -u$1 $2
}

typeset -i LOG_FH_COUNTER=3
open_log bigfile
print_log ${fh} "This is a test"

exit 0
Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 07:11 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0