The UNIX and Linux Forums  
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。

Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > シェルプログラミングとスクリプティング
Googleのunix.com



シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
ファイル記述子テーブル Ashaman0 UNIXの詳細&エキスパートのためのユーザー 6 2007年12月3日 02:54午後
ファイル記述子定数 ヴィノ 高レベルのプログラミング 4 2005年5月18日 01:18午前
ヘルプファイルディスクリプタ rahulrathod UNIXのダミー質問と回答のため 3 2004年10月14日 05:08午前
ファイルの活動(オープン/クローズ) Kornシェルスクリプトを使用してファイル記述子の情報 ゲイリーダン UNIXのダミー質問と回答のため 3 2004年6月7日 01:54午後
不正なファイル記述子ですか? ftb UNIXのダミー質問と回答のため 1 2002年2月20日 07:19午後

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2008年6月4日
robotball robotball is offline
登録ユーザー
  
 

参加日: 2008年6月
投稿数: 8
Question ファイル記述子を渡す

私は、ログファイルに書き込みをする権利をファイル記述子を使用して関数を試みている。この問題は、そのファイル記述子の明細書には、印刷不良と呼ばれています。するときに最初にf_open関数の中でも全作品f_print_logに記述子を渡すことで、しかしときにファイル記述子を取得し、私は悪いf_print_logパスにしようとするファイル記述子のファイルに戻さlogtest.shし、そこに印刷を開きます。任意の助けいただければ幸いです。ここに私の機能やスクリプトを呼んでいる:

********* f_log.shこれらの関数とは
機能f_open_log

next_fh \u003d $ LOG_FH_COUNTER
"実行eval $ next_fh > $ 1 "

$ next_fh f_print_log "ログ"を開いたファイル
( ( LOG_FH_COUNTER \u003d LOG_FH_COUNTER + 1 ) )

) $ ( next_fhエコー
戻り0


機能f_print_log

プリント- ū $ 1 $ 2
戻り0

************************************************** *

logtest.sh - >

# ! / binに/ ksh

。 f_log.sh

組版- ı LOG_FH_COUNTER \u003d 3

ログイン\u003d $ ( bigfile f_open_log )
$ "これはテストです"ログf_print_log

終了
  #2固定リンク)  
Old 2008年6月4日
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
モデレータ
  
 

参加日: 2003年12月
場所:フロリダ州
投稿数:1916
kshのどの特定のバージョンを使用しているか? ksh88 、 phkshまたはksh93 ?
  #3固定リンク)  
Old 2008年6月5日
robotball robotball is offline
登録ユーザー
  
 

参加日: 2008年6月
投稿数: 8
応答をしていただきありがとうございます。 ksh88実行している私です。
  #4固定リンク)  
Old 2008年6月5日
robotball robotball is offline
登録ユーザー
  
 

参加日: 2008年6月
投稿数: 8
何が悪いのファイル記述子を引き起こしていることがわかりましたしかし、どのように仕事したいfuncitonallityなるか分からない。私はf_print_log機能のうち、私は長い間に自分のポストを作成しないことを目指している行を残した。この関数する必要があります

機能f_print_log

[ [ $冗長\u003d\u003d 0 ] ] & & $ 2を印刷
プリント- ū $ 1 $ 2
戻り0


だからもしlogtest.shのverboseオプションを設定すると、出力が画面に表示され、ファイルにはf_open_logと呼ばれていますが、それは"オープンログファイルに書き込みます" f_print_logサブルーチンを使用してファイル記述子の両方の行が書き込まれると、送信されるバックは悪いlogtest.sh記述子を生成する。

何か提案。私は、ログファイルの行を開いた場合、維持することができるようになる。ありがとう。
  #5固定リンク)  
Old 2008年6月5日
時代 era is offline Forum Advisor  
Herder of Useless Cats (On Sabbatical)
  
 

参加日: 2008年3月
場所: /there/is/only/bin/sh
投稿数: 3652
私は、記述子は、親シェルで実行したときの中にバックから続くとは思わない。少なくとも、それはここに含まれます。 Bashだ。
  #6固定リンク)  
Old 2008年6月6日
robotball robotball is offline
登録ユーザー
  
 

参加日: 2008年6月
投稿数: 8
解決策が見つかりました。私は、冗長f_print_logルーチンに有効にするには追加の引数を追加した。私は、すべての作品罰金f_open_logルーチンに使っています。
  #7固定リンク)  
Old 2008年6月8日
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
モデレータ
  
 

参加日: 2003年12月
場所:フロリダ州
投稿数:1916
この問題は次のコード行をしています
コード:
LOG=$(f_open_log bigfile)
この閉鎖されるファイル記述子が発生する。 1つの回避策は、以下の例のようにグローバル変数を使用することです
コード:
#!/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

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 02:24午前


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0