Solaris8 (SPARC)上でJavaでいろいろ開発をしているのですが、
シェルの環境変数の長さに制限があるようで困っています。
具体的には、あちこちに散在しているjarファイルを参照する必要
があるので、環境変数 $CLASSPATHが非常に長くなっていて、
現在の設定以上に CLASSPATHを追加しようとすると「Word too long」
というエラーが出て設定できません。
1つの環境変数の長さの制限を変更することは可能でしょうか?
もしくはなにか回避策があれば教えて下さい。
使用しているシェルは tcsh です。

A 回答 (1件)

参考URLに tcsh の man を示します。


ここの最後の方に「制限」という章がありますが、そこにある
「単語は1024文字まで」という制限に引っ掛かってるんでしょうね。

まあ、tcsh であれば、ソースが有るわけですから、ソースを
いじってしまえば良いですよね。

もしくは、コンパイルや実行の際には bash を使う。コンパイルで
make を使っているんだったら、そこでシェルを指定すれば良いだけ
ですよね。

参考URL:http://www.linux.or.jp/JM/html/tcsh/man1/tcsh.1. …
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
結局ソースをいじるか、もしくはbashを使えば良いのですね。
有難うございました。

お礼日時:2001/05/17 19:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel VBAで、セルに入ってるデータ型を調べる方法は?

現在、Excel VBAでプログラムを作成しています。

Do Until ~ Loop の終了条件を
アクティブセルに入っているデータの型が文字列型の時
としたいのですが、そのようなことは可能なのでしょうか?

可能だとしたら、どのように記述したらいいのでしょうか?

当方のPCは
Win XP、Excel2003
です。

よろしくお願いいたします。

Aベストアンサー

VarType 関数を使うとか。

Sub SampleProc()

  Dim i As Long
  
  i = 1
  Do While Len(Cells(i, "A").Value) > 0
    If VarType(Cells(i, "A")) = vbString Then
      Exit Do
    Else
      ' // 処理
    End If
    i = i + 1
  Loop
  MsgBox CStr(i) & "行目で停止"

End Sub

Q環境変数とシェル変数

UNIXのシェルスクリプトで使用するシェル変数と環境変数とはどういった違いがあるのでしょうか?どのように使い分ける必要があるのでしょうか?また、このような使い方をすると間違いがおこりやすいといった具体的な例など教えていただければ助かります。

Aベストアンサー

環境変数はforkした子プロセス(及び子シェル呼び出し)に引き継がれ、呼ばれた子プロセスはそれらを参照する事が出来ますが、シェル変数は子プロセスには引き継がれません。

子プロセスが親からの情報を受け取って何かしたい時に環境変数を使います。

QVBAでオブジェクト変数にsetしたシートがactiveかどうかを調べるには?

標準モジュールの冒頭でワークシート用のオブジェクト変数を確保し、
あるタイミングで、あるシートをそのオブジェクト変数にSetしています。

で、そのシートに値をセットするときに、そのシートがActiveだった場合だけやりたい処理があるのですが、Setしてあるオブジェクト変数だけを見てそのシートがActiveか否かを判断する方法って、あるのでしょうか。

コード例)
Private oSheetA as Worksheet

Sub SetSheet(sName as String)
  Set oSheetA = worksheets(sName)
End Sub

Sub SetValue(nValue as integer)
  xxxxxx ←ここでoSheetAがActiveならやりたいことがある。
  oSheetA.Cells(nRow, nCol) = cValue
End Sub

具体的には、複数のBookを開いている状態で、Activeシートが何であるかはオペレータの操作次第なので固定化できない状態で、SetValueが呼び出されたとき、oSheetAがActiveだったら、値をセットするセルが見えるようにセルをActivateかスクロールさせたいんです。

標準モジュールの冒頭でワークシート用のオブジェクト変数を確保し、
あるタイミングで、あるシートをそのオブジェクト変数にSetしています。

で、そのシートに値をセットするときに、そのシートがActiveだった場合だけやりたい処理があるのですが、Setしてあるオブジェクト変数だけを見てそのシートがActiveか否かを判断する方法って、あるのでしょうか。

コード例)
Private oSheetA as Worksheet

Sub SetSheet(sName as String)
  Set oSheetA = worksheets(sName)
End Sub

Sub SetValue(nVa...続きを読む

Aベストアンサー

Option Explicit

Private oSheetA As Worksheet

Sub SetSheet(sName As String)
Set oSheetA = Worksheets(sName)
End Sub

Sub SetValue(nValue As Integer)
If oSheetA Is ActiveSheet Then
MsgBox ("hoge")
End If
oSheetA.Cells(1, 1) = nValue
End Sub

Sub Main()
SetSheet ("Sheet1")
SetValue (5)
End Sub

'実行できるようにソースは変更していますが,
'こんな感じでIs演算子で同じオブジェクトか比較してみるってのはどうでしょう?

Qシェル変数でYYYYMMDDをいれたいのですが…

UNIX系初心です。

シェルススクリプトのなかでFTPであるファイルを取得したいのですが、
ファイル名がabcd.20010101.csvというファイル「日付の所が毎日更新されます」
シェル変数で
>
set a_name = adcd.
set b_name = date "+%Y%m%d"
set c_name = .csv
set x_name = $a_name$b_name&c_name

ftp -i -n 999.999.999.999 << END
user ***** *****
get /home/$x_name /root/kensaku.csv
bye
END
>

としたところ
「b_name」のところに値がうまく入りません
set b_name = date "+%Y%m%d"
がうまくセットされないようです
ほかによい方法があれば教えてください。
かなり困ってます。
よろしくお願いします。

Aベストアンサー

> どうもうまくいかないみたいです。

うまくいくって。

どううまくいかないのかを書かないと、それ以上分からないですね。
どうやって確認しているんですか?

スクリプトを -x を指定して実行してみたら、きっと勘違いをしていることに
気がつくんじゃないかなあ。

% csh -x スクリプトファイル名


ちなみに、set x_name のところの b_name&c_name は、質問を書くときの
打ち間違いだと思っていて良いですね?

QVoidポインタで受け取った変数の型を調べる方法

あるライブラリの関数を利用しようとしたのですが、その関数の引数にVoidポインタがあり、どういう型のデータを格納したのかわかりません。このポインタのアドレスに格納されたデータの型を調べる関数なり方法なりというのはあるのでしょうか。

Voidポインタというのは型を問わずに受け取れるというのは利点ですが、受け取ったものがあらかじめなんだかわからない場合はどうするのでしょうか。よろしくお願いします。

Aベストアンサー

★基本的に調べようがありません。
・『void』ポインタはアドレス情報のみを受け渡しますので、型のサイズまでは分かりません。
 逆に言えば、型のサイズが分からないから『汎用ポインタ』と呼べるのです。
・あるライブラリの関数とは何?→どんな関数か分かりませんので、これ以上はアドバイス無理!
 ただ、C言語の qsort などでは比較用の関数で『void』ポインタを受け取りますが、その関数内で
 渡されたデータの『型』を指定します。→ポインタの形でキャストします。
 この比較用の関数は自前で用意する関数ですので、ソートするデータの型が分かっています。
 でも、ソートするデータ型が複数ある場合は、比較用の関数を複数作って切り替えます。
・あと関数に型を表す引数があれば、それを見て判断できますが、そうでない場合は『void』ポインタで
 渡される前の『型』の調べることは不可能です。→言語仕様より。
・以上。参考に。→一応、あるライブラリの関数とは何?

Qシェルの中から他のシェルを呼び出す

例えば、ひとつのシェルファイル( aaa.sh )の中に、
-------------------------
#!/usr/bin/csh
set HOME=/home/test/tmp
bbb.sh
-------------------------
と記述した場合、bbb.shで変数$HOMEを使いたいと思いましたが、
使えないようです。(HOME: 未定義の変数と表示されます)
どなたか、これ以外の方法で、このように
シェルからほかのシェルを呼び出して、変数も引き継がれるような方法ご存知ないでしょうか?
多分こーやれば、こうなるかも!みたいなご回答でも結構ですので情報提供をお願いします。

どうぞ宜しくお願い致します。

Aベストアンサー

たぶん環境変数は引き継がれます。
setenvを使えばいいように思います?

QVBAでテキストファイルの件数を調べる方法

Access2000のVBAで関数を使用して
ファイルのパス名、ファイル名を指定すれば、
テキストファイルの件数を検索し変数に返す
関数はありませんか?
   
通常テキストファイルを開き1件1件カウントを
取っていけば件数を知ることは可能ですが、
数千レコードのテキストファイルが複数個存在
する場合処理スピードが遅くなるため何か
最適な関数はありませんか?
よろしくお願い致します。

Aベストアンサー

こんにちは。maruru01です。

No.2の方のFileSystemObjectを利用する方法です。

行数 = CreateObject("Scripting.FileSystemObject").OpenTextFile(ファイルのフルパス, 8).Line

複数のファイルをカウントするなら、ファイルでループを回せばいいでしょう。

あと、FileSystemObjectの参考ページを紹介しておきます。

http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsobjFileSystem.asp

参考URL:http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm,http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/l

こんにちは。maruru01です。

No.2の方のFileSystemObjectを利用する方法です。

行数 = CreateObject("Scripting.FileSystemObject").OpenTextFile(ファイルのフルパス, 8).Line

複数のファイルをカウントするなら、ファイルでループを回せばいいでしょう。

あと、FileSystemObjectの参考ページを紹介しておきます。

http://www.bcap.co.jp/hanafusa/VBHLP/FSOme.htm

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/jsobjFileSystem.asp

...続きを読む

QUNIXのシェル、環境設定について教えてください。

こんにちは。
UNIXについて詳しく勉強したいとおもっています。
コマンドなど基本的なファイル操作についてはある程度わかるのですが、UNIXの環境設定、環境変数、シェルなどの物につまづいています。
「環境変数って一体なんだよ!」
「シェルのBシェル、Cシェルって・・・」
こんな感じです。
これらについて初心者でもわかるような本、サイトを教えてください。
あと、初心者すぎて恥ずかしい質問なのですが、UNIX系OSにはいろいろな種類があるのは知っているのですが、「UNIX」という名前のOSはあるのでしょうか?
また、Teratermを使っているのですが、これって何ていう名前のOSなのでしょうか?
最後に、会社なのでは、SolarisとLinuxどちらが多く使われているのでしょうか?
これらの質問に詳しい諸先輩方アドバイスの方をよろしくお願いします。

Aベストアンサー

まずUNIXの件ですが、最初にAT&Tベル研で開発されたときの名前がUNIXです。その後いくつかバージョンアップを重ねversion 6とかversion 7とかが出た後、BSDとSystem IIIに分かれました。現在のUNIXの(米国内での)商標を持っているのはSCOで、SCO UnixWareなどとして販売されています。

シェルとは何ぞやというのはいいですよね?基本的にはキー入力されたコマンド列を解釈して実際のプログラムを起動するプログラムです。

Bシェル(Bourne shell)はversion 6ぐらいのころにだいたい今の形になりました。BSDが分かれたころにCの文法に近い方がスクリプトを書きやすいのではということでcshが開発されました。結局シェルスクリプトとしてはBシェルのシェアが圧倒的ですし文法も整っているので書きやすいのですが。Bシェル、Cシェルなどいろいろありますが、別に機能が大きく違うわけではありません。文法の好みで選ぶことがほとんどです。ログインシェルとしては、コマンド行の修正のしやすさとかそういう使いやすさを補ったbash, zsh, tcshなどを使うことが多いです。

シェルでいうところの変数というのは、シェルスクリプトやコマンド行の解釈をする上で何度もでてくるような文字列を記憶しておく場所です。一部の特定の変数はシェルの動作を指定するのに使ったりします(どこからプログラムを探すかを決めるPATHなど)。この変数のうち指定したものは環境変数といわれ、シェルの中だけでなくシェルから起動されたプログラムでも参照することができます。PATHも環境変数なので子供のプログラムもどこからプログラムを探し出すべきか知ることができます。PRINTER環境変数はlprコマンドにデフォルトのプリンタ名を教えます。MOREやLESSの環境変数は、moreやlessのデフォルトのコマンドラインオプションを変更します。そのほか、プログラムごとにさまざまな環境変数を使うことになっているので、それぞれはマニュアルを見ないとわかりません。自分で好きな変数を用意して使ってもかまいません。

TeraTermはWindows上の端末ソフトです。これはOSではありません。どこか別のマシンの別のOSに接続するだけです。

まずUNIXの件ですが、最初にAT&Tベル研で開発されたときの名前がUNIXです。その後いくつかバージョンアップを重ねversion 6とかversion 7とかが出た後、BSDとSystem IIIに分かれました。現在のUNIXの(米国内での)商標を持っているのはSCOで、SCO UnixWareなどとして販売されています。

シェルとは何ぞやというのはいいですよね?基本的にはキー入力されたコマンド列を解釈して実際のプログラムを起動するプログラムです。

Bシェル(Bourne shell)はversion 6ぐらいのころにだいたい今の形になりました。BSD...続きを読む

QVBAで他のプログラムが起動しているか調べる方法

VBAで
D:\test\test.exe
が起動中か調べたいのですが
どのようにすれば良いですか?

http://www.vbalab.net/vbaqa/data/access/log/tree_532.htm

このページの方法を使えば、
exe以外のファイルが使用中かは調べることができたのですが
exeファイルの場合にはうまくいきません。

良い方法があれば教えてください。

Aベストアンサー

残念ながら・・・出来ません。
一応、プロパティの中に Handle ってのがあるのですが
取得できるのは ProcessID の値です。
以前、調べていて Handle を見つけた時は、
『やったー \(^o^)/』と思いましたが
ぬか喜びでした。。。orz

なお、当方の環境は、Windows7 Pro & Office2010 です。

Qshで書いたシェルスクリプトで`とか'とかの中で変数を使いたい。

標題の質問ですが、gnu dateコマンドを使って数日前の日付を取得しているのですが、

こんな具合:
DATE=`date --d '1 day ago'`

何日前の日付を取得するかを引数で決めたいのです。
しかし
DATE=`date` --d '$1 day ago'`
これでは当然上手く行きません。
上手いことエスケープして変数を使用する方法を教えてください。

シェルはshです。

Aベストアンサー

ごめんなさい、`がひとつ多かった^^;


``の中でも変数は展開されますので、

DATE=`date --d $1' day ago'`

でいけます


人気Q&Aランキング

おすすめ情報