• 締切済み

実行シェルからCOBOLへパラメータを渡したい。

実行シェルで変数に値を直書きで代入し、その変数の値をCOBOL側で使用したいのですが、シェルでの宣言のやり方とCOBOLでの受け取り方が分かりません。 どなたか分かる方お返事お願いします。。。

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.2

調べるポイントとしては、 (1) 環境変数を取得する機能が無いかどうか(Cでいうところのgetenv()相当) (2) procedure division using で、コマンドラインの文字列を参照する機能が無いかどうか(Cでいうことろのargc,argv相当)

mix_juice
質問者

お礼

回答ありがとうございます。 しかし、私にはCのスキルがありませんので、いまいちピンときません(><) 色々試した結果、ACCEPTで取得する事ができました。

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

このあたりは、COBOLの共通の文法じゃなくて、各コンパイラで独自に拡張されている部分なので、お使いのCOBOLのマニュアルを調べるしかないです。 おそらく、 (1) 環境変数を経由して文字列を渡す (2) メインプログラムの引数として文字列を引き渡す のどちらかもしくは両方の方法が使えると思います。

mix_juice
質問者

お礼

そうですか。。。 マニュアルも調べたのですが、シェルに関する事には触れておらず困り果てていたのですが(><) もう少し調べてみます。ありがとうございました。

関連するQ&A

  • CシェルとCOBOLについて

    初めて質問させて頂きます。 初心者の為、あまりうまく質問が出来るかどうかわかりませんが宜しくお願い致します。 今、 CシェルからCOBOLを呼び 呼ばれたCOBOLの内部で処理をしています。 そこで、 COBOLの内部で処理した値を呼び元のシェルに返すことは 出来るのでしょうか? 返す項目は、複数あり数値項目、文字項目両方あります。 プログラムのほうもあまり詳しくはありませんので、 初歩的な質問かも知れませが、 何方かご教授願いませんでしょうか。

  • bシェルでシェル変数に変数に代入されている値の個数

    bシェル(Bourneシェル)で、シェル変数に変数に代入されている 値の個数を知りたいのですが、できるのでしょうか。 ----- #!/bin/sh A="1 2 3 4 5" echo $A 変数Aには、半角スペース区切りで、「1 2 3 4 5」と5個の値が 代入されています。 この設定されている値の個数、5を求めたいのですが、 どうすればよいのでしょうか。 Solaris8 Bシェル です。

  • COBOLソースに記述するホスト変数を使用したSELECT INSER

    COBOLソースに記述するホスト変数を使用したSELECT INSERT分に関する質問です。 COBOLのソースに下記のようなSQL分を記述した際、どのような制御でホスト変数にはどのような値が代入されるのでしょうか? SELECT MAX(columnA) INTO :H1010:H2020 FROM A_TABLE WHERE …(以下抽出条件) ※H1010及びH2020はホスト変数定義しているものとします。 SELECTを行った項目数とINTO句にて指定した変数の数が異なる場合、エラーとなる記憶があります。 また、複数のホスト変数を使用する場合、カンマ区切りが必要だった記憶もあります。 実際に実行したところ、エラー等無く実行されました。結果を見るとH1010には値が代入され、H2020は初期値のままでした。 どのような制御でこの結果になっているのでしょうか? 参考までに、DBMSは「symfoware」です。 もしご存知の方がいらっしゃいましたら、ご教授頂けると助かります。よろしくお願いします。

  • シェルの変数値を読み込む

    シェル(sh)で持っている変数($1~$5)をperlのプログラムに渡したいのですが方法がわかりません。 ご存じの方いらっしゃいましたらお願いします。 Q(1) test.sh: $1、$2、$3、$4、$5 にそれぞれ値が格納 ./test.pl $1 $2 $3 $4 $5 ↑シェル側出力はこうですか? Q(2) test.pl: どうやって変数値($1~$5)を受け取るのでしょうか? 以上、よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • シェルからPHPを実行したときの戻り値について

    PHPについては、かなり初心者です。 とんちんかんな質問をするかもしれませんが、 ご容赦ください。 今、linux系のOSで、 シェルスクリプトからPHPを実行する処理を作っています。 「/usr/local/bin/php xxxx.php」 という感じです。 この戻り値を、「$?」で取得すると、 正常に終了した場合は「0」、 処理が落ちた場合は「255」 が表示されるようなのですが、 この戻り値について、0、255以外の値を戻したいと思っています。 PHP内部で、特定の条件に当てはまった場合は、「2」をreturnしたいと思っています。 そのreturn値を使って、シェルスクリプトでif文で、判定処理を行いたいのです。 シェルスクリプト側で、PHPでの処理結果を変数に受ける方法があれば、 必ずしも「$?」を使う必要はないのですが・・・、 「$?」で「2」を取得できるのが一番理想です。 何か方法をご存知の方がいらっしゃいましたら、 よろしくお願いします。

    • ベストアンサー
    • PHP
  • メッセージを求められるシェルを連続実行

    お世話になります。 現在シェルを作成しています。 既に存在するシェル(100個)を順番に実行するシェルを 作成しようとしています。 しかし、その存在するシェルは実行すると、YES/NO  の確認メッセージに答えないと、進まないようになってい ます。 そのため、確認メッセージに中断されて連続で実行できません。 この確認メッセージで止まらずに連続実行する手段は あるのでしょうか? シェルに詳しい方のご教授ねがいます。 ■既に存在するシェルのメッセージ確認の個所 echo $変数 "実行しますか(確認メッセージ?) [N] => \c" read YN echo " " if [ "$YN" != 'Y' -a "$YN" != 'y' ];then echo ' 実行しません' exit 1 fi

  • シェル変数に2つのスペースを代入する方法

    シェルスクリプトを作成する際、変数に2つのスペースを持つ値を代入するにはどうすればいいのでしょうか。 例えば変数SPACEに「Jan△△1」という文字列を代入したい(△はスペース1文字分)時、 SPACE="Jan△△1" echo $SPACE   としても、 結果は「Jan△1」となってしまいます。 どなたかご存じの方、よろしくお願いします

  • 【COBOLの実行環境構築】freeで

    【COBOLの実行環境構築】freeで 現在、COBOLを使用して開発をしているのですが、 自宅でも学習できるように実行環境を構築しようとしているのですが、 ネットをみても、かなり古いサイトしかのっていないため、 全く参考になりません。 自宅でも使用できるCOBOLのfreeソフトは存在しますでしょうか?

  • COBOL 9(02)で定義した変数にマイナス値をセットすると?

    COBOLについて教えてください。 現在、既存のシステム(COBOL)を机上でチェックしているのですが、 関数からの戻り値変数を (例)RC 9(02) で定義して、 異常発生時に、MOVE -1 で値セットしているロジックがありました。 S9タイプではないので、誤動作を起こすと思うのですが、 実際このような処理を行うと、変数RCにはどんな値がセットされるのでしょうか? 実行環境が無いので、動作確認ができず、困っています。(バグかと思うのですが、該当のロジックは幸いにも今まで実行されていなかったようです) よろしくお願いします。

  • 空白を含んだシェル変数の代入

    こんにちは。 空白を含んだシェル変数の代入について教えてください。 set test1="ABCD EFGHIJ" set w1=$test1 echo "w1 = $w1" このようなシェルスクリプトを実行させた時 w1 = ABCD と表示されてしまいます。 解決案があれば教えてください。 よろしくお願いします。

専門家に質問してみよう