• ベストアンサー

Tcl/Tkの超初歩的な質問です。

Tcl/Tkの超初歩的な質問です。 「open $filename」でファイル入力(オープン)する際に対象ファイルはディレクトリのどこへ置くのがデフォルトなのでしょうか。スクリプトと同じディレクトリに置いてもファイルがないとエラーになっています。 また、「source hoge.tcl」をwishで行った後「hoge」と入力して実行したいのですが、無効なコマンドとかのエラーになるのですが、これもどう解決すればいいのか見当つきませんでした。 解決方法のご存知の方よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

・openにディレクトリ指定無しでファイル名を指定したり、相対パスでディレクトリを指定した場合、「現在の作業ディレクリ」が基準になります。 これは、Tck/Tkに限らず、たいていのプログラム言語でそうなります。 よくある「プログラムと同じディレクトリから設定ファイルを読み込む」というのは、なんらかの方法で「プログラムのあるディレクトリ」の情報を入手、あるいは、特定の場所にあるものと決めつけて、ディレクトリ込みのファイル名を指定するようにしています。 Tclだったら[dirname [info script]]でスクリプトのフルパスを取得→ディレクトリだけ取り出す といったことを行います。 ・sourceは、「wishを起動して、指定したファイルの内容をそのままキーボードで入力」したのと同等の処理を行うものです。 source hoge.tclの後でhogeとして実行したいのなら、proc hoge~と実行したい内容をプロシージャで定義する必要がありますが、それはできていますか?

rahmenmaru
質問者

お礼

解決できました。 ありがとうございます。

関連するQ&A

  • TCL/TKのインストール

    標準インストール(カスタムをしてない)FedoraCore6に以下のものをインストールしようとしています。 ・tcl8.3.1 ・tk8.3.1 ・itcl3.1.0 tcl8.3.1にはtcl8.3.1i18n.patchを、tk8.3.1にはtk8.3.1i18n.patchを当ててtcl/tkを使用しようと考えているのですが、tcl8.3.1にパッチを当てて、 ./configure --prefix=/usr/local とコマンドを打つと以下の様なエラーが出てconfigureが完了しません。 checking system version (for dynamic loading)... ./configure: line 5754: syntax error near unexpected token `)' ./configure: line 5754: ` OSF*)' なお、標準インストールのFedoraCore1とFedora8ではきちんとインストールが出来て、TCL/TKのプログラムも動作します。 どなたか分かる方が見えましたら、ご教授をお願いします。

  • FC6にTCL/TKのインストール

    標準インストール(カスタムをしてない)FedoraCore6に以下のものをインストールしようとしています。 ・tcl8.3.1 ・tk8.3.1 ・itcl3.1.0 tcl8.3.1にはtcl8.3.1i18n.patchを、tk8.3.1にはtk8.3.1i18n.patchを当ててtcl/tkを使用しようと考えているのですが、tcl8.3.1にパッチを当てて、 ./configure --prefix=/usr/local とコマンドを打つと以下の様なエラーが出てconfigureが完了しません。 checking system version (for dynamic loading)... ./configure: line 5754: syntax error near unexpected token `)' ./configure: line 5754: ` OSF*)' パッチを当てない場合も同様のエラーが起きてしまいます。 なお、開発ツールをインストールした状態のFedoraCore1では、パッチを当ててインストールができて、Fedora8ではパッチを当てなければインストールが出来て、TCL/TKのプログラムも動作します。 どなたか分かる方が見えましたら、ご教授をお願いします。

  • tcl/tkで標準出力に出される値を変数に代入したい

    tcl/tk(8.4)をWindows2000/98で使っております。 あるライブラリで、コマンドの実行結果を標準出力に返してくるものがあるのですが、その結果を変数で受けるには どうしたらよいのでしょうか。 具体的には、 >gpib read とシェル内で入力すると結果が >123 と返ってきます。この123を、変数で受けたいのです。 いろいろ、検索してみたのですが、そういうことをして いる例がなくて困っております。 なお、あるライブラリとは、 http://gpib-tcl.sourceforge.net/ のGPIB-tcl のことです。

  • Tcl/Tkのエラーメッセージ対応

    Tcl/TkでGIF形式指定のうえ画像保存をしようとすると、次のようなエラーメッセージが出ます。  "Too many colors …" これはパレットにない色を使用した結果だと思うのですが、image createコマンドでオプションを次のように指定しています。  image create …… -format gif -palette 256/256/256 なお使用した色は次の6色で、エラーメッセージが画像保存の段階になって出てくるので、どの色でひっかかっているのか不明です。  blue,DeepSkyBlue,red,coral,black,white 一つ一つの色を取捨選択して確認するのも面倒なことだし、後学のためにご存知の方がいらっしゃればコメントお願いします。 Tcl/Tkが扱うGIFカラーは、特定の256色に固定なのか、それとも1670万色のうちの任意の256色を指定できるのかも知りたいところです。具体的に説明しているURLの紹介でもかまいません。なおTcl/TkのバージョンはWindows版"ActiveTcl8.4.7.0"です。

  • 親ディレクトリの更新日付を更新せずにファイルを削除するには

    親ディレクトリの更新日付を更新せずにファイルを削除するには 例えば、以下のディレクトリ構成で「aaa.txt」を削除しても親ディレクトリである「AAA」の更新日付が変更されない方法はありますでしょうか? なお、実装はRHEL5上でのBashスクリプトになります。 /home/hoge/AAA/ => 2010/10/01 06:30:00 /home/hoge/AAA/aaa.txt => 2010/10/01 06:30:00 2010/10/03 12:30:00に以下のコマンドを発行 rm /home/hoge/AAA/aaa.txt /home/hoge/AAA/ => 2010/10/03 12:30:00 に更新されてしまいます。 => 2010/10/01 06:30:00 を保持していたいのです。 できればコマンドのみで解決したいと思っています。 コマンド単体で無理なら、rmで削除する前にディレクトリ情報を一時ファイルへ書き出すしかないと思っています。 以上、よろしくお願いします。

  • GUIアプリスタート後コマンドプロンプトのウィンドウを隠したい

    コマンドプロンプトから次のようなコマンドを入力して、 GUIアプリ(スクリプト)をスタートさせています。 (Perl/TkによるGUIアプリが起動します)    perl hoge.pl ここでhoge.plが立ち上がった後はコマンドプロンプトの 黒いウィンドウは目障りで出来れば消したいのですが そんなことはできるのでしょうか? どなたかお分かりになる方いらっしゃいましたら お教え願えませんでしょうか? どうぞよろしくお願いします。

  • Xlib.h Not Found

    postgreSQL7.1.3 RedHatLinux7.1J Tcl/Tkインターフェースのlibpgtclをインストールしようと思い、 configure→makeと進んだところ、makeにて /usr/include/tk.h:83:29: X11/Xlib.h: No such file or directory というエラーが出てしまいます。 findで全てのディレクトリーを調べてみましたが、確かにどこにもありません。 どうやったらXlib.hをインストールできるのでしょうか。

  • ある階層のすべてのディレクトリ内にディレクトリ作成

    例えば /home/hoge/aaaa/ /home/hoge/bbbb/ /home/hoge/cccc/ のようなディレクトリ構成で、 /home/hoge/aaaa/1/ /home/hoge/bbbb/1/ /home/hoge/cccc/1/ のように新たなディレクトリを作成したいと思い、 mkdir /home/hoge/*/1 としたところ、 mkdir: cannot create directory `/home/hoge/*/1': No such file or directory と怒られてしまいました。 こういった処理をしたい場合は、シェルスクリプトを組むしかないのでしょうか? 当方、シェルスクリプトには明るくなく学習時間を考えると、30ディレクトリ程度なので手作業でやった方が早いと思うので、そのようにしたいと思ったのですが、もしコマンドラインでうまいこと記述できる方法をご存知でしたら、ご教授願いたいです。 厚かましいですが、もし容易にシェルスクリプトで記述できるならコードを書いてくださると助かります。

  • コマンドによるディレクトリの圧縮

    コマンドの全くの初心者です。 今、ディレクトリの圧縮をしようと思っています。 いろいろ調べて まず[zip filename.zip filename]として実行しました。すると、filename.zipというファイルはできるのですが、storedが0%で130byteぐらいしかない中身が空っぽの圧縮ファイルになってしましました。 次に[gzip filename]というコマンドを実行してみましたが、デェレクトリは駄目というようなエラーになってしましました。 ディレクトリの圧縮はどのようにすればいいのでしょうか?お願いいたします。ちなみにOSはfedora3です。

  • シェルスクリプト コマンドを変数にした時の呼び方

    はじめまして、シェルスクリプトを勉強中の者です。 コマンドを変数にいれて、まとめました。 しかしコマンドの変数を呼びこもうとするとエラーになります。 ============================================ #!/bin/sh GREP="grep" cat "${GREP} '^[0-9]' /home/hoge/test.nicdf" ============================================ ================ シェル実行結果 ============= $ ./test.sh cat: grep '^[0-9]' /home/hoge/test.nicdf: そのようなファイルやディレクトリはありません どう書けば、エラーにならずに正常に動作するでしょうか? ご教授の程よろしくお願いします。

専門家に質問してみよう