• 締切済み

perlと引数 その結果はshellscript

今、仕事で、UNIXの知識もないまま、突入しています。 教えてください。 perlのプログラムに引数を与え、perlで処理した内容を shellScriptにしようとしています。 #! /usr/bin/sh myProgram.pl "mytest" > mytest.sh どうもうまく行きません。どうすればよいですか? よろしくお願い致します。

noname#95859
noname#95859

みんなの回答

  • marimo_cx
  • ベストアンサー率25% (873/3452)
回答No.3

>Perlの中での変数への代入がどうもおかしいようです。 >引数を変数に代入する方法を教えてください。 だったらどうおかしいかと、おかしいソースを書いてもらえませんか?

noname#95859
質問者

お礼

何とか解決しました。今、夜中の1時半です。 Shellscriptの中は、 #! /usr/bin/sh mydate.pl "TOKYO" "Tokai" "Kansai" > mytest.txt mydate.plの中は #! /usr/bin/perl $region0=$ARGV[0]; $region1=$ARGV[1]; $region2=$ARGV[2]; print "$region0 --> $region1 --> $region2\n";

  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

>perlのプログラムに引数を与え、perlで処理した内容を >shellScriptにしようとしています。 Perlのスクリプトがシェルスクリプトを生成して出力するという事ですか? >どうもうまく行きません。 何がどうまくいかないのでしょうか?

  • marimo_cx
  • ベストアンサー率25% (873/3452)
回答No.1

(・_・)......ン? #! /usr/bin/sh myProgram.pl "mytest" | mytest.sh じゃない?

noname#95859
質問者

補足

Perlの中での変数への代入がどうもおかしいようです。 引数を変数に代入する方法を教えてください。 よろしくお願いします。

関連するQ&A

  • .forwardから呼び出すperlプログラムに引数を付ける事は可能ですか?

    はじめまして。Perlの初心者ものです。 よろしくお願い致します。 .forwardから呼び出すperlプログラムに引数をつけて プログラム内で引数とメール内容を処理に使用したいので すが、出来るのでしょうか? 例えば.forwardの中身を |/XXX/test.pl p1 と、記入して、 test1.pl内で引数によって、メールの内容を違ったファイルに保存したいです。 よろしくお願い致します。

  • bashの引数

    bashで次のようなプログラムを作っています。 1.a.shからa.outを呼び出す。 2.a.outは引数を取ります。 この時、a.sh [引数]でうまく実行させるには、 a.shの内容は、 #!/bin/bash a.out $1 でいいのでしょうか。教えてください。 (参考ページ等もありましたらご教授願えると幸いです。) 宜しくお願いします。

  • perlの起動法

    perl起動法について質問なのですが、 perlでファイルを作り、一番上に#!/usr/bin/perlと書いて、perl.plという名前で保存しました。 ターミナルで$chmod 755 perl.pl $./perl.pl とコマンドをうったのですが、print文で書いたhello worldというが表示されません。 でもperl perl.plとコマンドを打つと実行されます。 一体この違いはなんなのでしょうか?学校の課題で、どうしても./perl.plとして実行させなければならないので是非解答お願いします。

    • ベストアンサー
    • Perl
  • Perlのパス

    レンタルサーバーのCGIの説明で、「1.perl のパスは、/usr/bin/perl です。2.プログラムの先頭の記述は必ず、#!/usr/bin/perl となります。」って書いてあるんですけど、これを使用する場合、 http://www.kent-web.com/data/cart.html たぶん、admin.cgi , cart.cgi , order.cgi を エディタ で開いて以下の箇所をあたまの部分、#!/usr/bin/perl を変えればいいんですかね?それで1.の/usr/bin/perl は何処に書くのかな?それとも説明 の前置きですかね?「1.perl のパスは、」という意味はリンクがこうなるよ!って意味ですかね? ただま、KENT WEBみながら苦戦してます。 シロウトですいません。

    • ベストアンサー
    • Perl
  • unixのperlで

    UNIXのPerlでは引数は@ARGVに入ると思うのですが、 a.pl *.c "*.c" という引数を入れるとファイルが展開されそのフォルダの中の "12-1.c" とか "12-2.c" とかいう引数が、配列に1つずつ入ってきました。 引数の文字列を何の修正もなしに(できればスペースも)受け取る方法はないですか?

    • ベストアンサー
    • Perl
  • 2つの引数の合計の求め方ですが

    perlの初心者ですので初歩の問題ですが分かる方いればぜひ教えていただきたいです 引数が2つの場合だと下のようになるのが分かるのですが2つ以上の場合はどうすればいいのでしょうか よろしくおねがいします #!/usr/local/bin/perl $sum=$ARGV[0]+$ARGV[1]; print"sum=$sum\n";

  • ShellScriptの初歩

    いつも初歩の質問ばかりしていて、本当に申し訳ない。でも本当に感謝しています。 また、初歩の質問です。 schellscriptで、 #! /usr/bin/sh for i in $(cat list1.dat) do gunzip -d $i done cygwin上では、問題なく動いたのが、unix上では、 syntax error at line 2: `$' unexpected と返ってきます。 どのようにすれば良いのでしょうか?

  • perlのcgiが動かない・・・

    cgiを組もうと思い、まずは簡単なもので試そうと思ったのですが、 うまくいかず困っています。 ↓プログラムは、こんな感じです。 ファイル名:index.cgi #!/usr/bin/perl print "<html>"; print "<body>"; print "abc"; print "</body>"; print "</html>"; <やってみたこと> ・Perlのパス「#!/usr/bin/perl」 が間違っていないか? which perl で /usr/bin/perl とでます。 ・Apache の設定が正しく行なわれているか? http://localhost でindex.htmlがきちんと表示できています。 ・「hello.cgi」 の設置場所を間違っていないか? プログラムソースが出るということは、 間違っていないのではないでしょうか? ・ためしに実行してみた TELNETで ./index.cgi <html><body>abc</body></html> とでてきました。 これはちゃんと動いているのでは?? 何か勘違いしていますか? お気づきの点を教えてください。よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • perl.exe - エントリポイントが見つかりません

    perlで書かれたプログラムを下記のように実行すると、「perl.exe - エントリポイントが見つかりません」というタイトルのエラー画面が表示されます。 >c:\perl\bin\perl.exe <プログラム名>.pl <引数> エラー画面の詳細メッセージは下記のとおりです。 「プロシージャエントリポイント PL_sv_undef がダイナミックリンクライブラリ Perl56.dll から見つかりませんでした。」 実行はWindows上で、perlのバージョンはActive Perl 5.6.1を使用しています。 (上記プログラムが5.6ベースで開発されているため) 同様の環境の他のマシンで実行すると正常に処理が行われるので、環境依存の問題かと思われるのですが、Active Perl を再インストールしても状況は変わりませんでした。 何か手がかりになるような情報をお持ちの方がいらっしゃったら、教えていただけると大変ありがたいです。 よろしくお願いいたします。 ※もし、ここに質問するのが適当でないようであればその旨ご指示いただければ幸いです。

    • ベストアンサー
    • Perl
  • 超初心者です

    最近Perlの勉強を本をつかって始めたのですが、 最初の段階でつまずいています。 プログラムは #!/usr/bin/perl #プログラム:hello.pl print "Hello, world!\n"; という本当に実に単純なものなのですが、これをターミナルで実行しようとすると $ hello.pl bash: hello.pl: command not found と表示されてしまします。 $ perl hello.pl Hello, world! ではちゃんと動いています。 Perlの場所は $ find /usr -name perl /usr/bin/perl /usr/doc/db3-devel-3.2.9/ref/perl により間違っていないと思いますし、 chmod 755 hello.pl も行っています。 なにぶん初心者ですので何が他に理由でエラーになるのかわかりません。もしよろしければ、アドバイスをいただけるとうれしいです。 自分はVineLinux2.6を使っていてPerlのバージョンは5.006001です。

    • ベストアンサー
    • Perl