68user's page 掲示板

Prev< No. 4894〜4902> Next  [最新発言に戻る] [過去ログ一覧]
No. 4894 # つのりん [E-mail] 2008/03/26 (水) 19:31:35
>4889
ありがとうございます。ヤフーのオークション
で見てみます。

No. 4895 # べた 2008/03/27 (木) 11:29:44
>>4893 68user

ありがとうございます。

perlのスクリプトを実行時のみ有効にしたいのです。
perlのスクリプト内で記述する場合はどのように
定義すればよいのですか。

No. 4896 # 68user 2008/03/27 (木) 11:44:00
>>4895 べた
perl コンパイルの際の Configure 時に設定する方法があります。

それが無理なら
    #!/bin/sh
    PERL_BADLANG=0 /foo/bar/baz.pl
と wrapper を作るか、env コマンドで
    #!/usr/bin/env PERL_BADLANG=0 /usr/local/bin/perl
とする手もあります。

No. 4897 # べた 2008/03/27 (木) 12:55:00
>>4896 68user
ありがとうございます。

#!/usr/bin/env PERL_BADLANG=0 /usr/local/bin/perl
#

とperlのスクリプト内に記述して、実行したのですが、
処理がとまったというか、何も応答が返ってきません。

No. 4898 # 68user 2008/03/27 (木) 23:05:24
>>4897 べた
なるほど FreeBSD 5.2.1-RELEASE では動きますが、Linux では確かに
無限ループしてますねぇ。

> #!/usr/bin/env PERL_BADLANG=0 /usr/local/bin/perl
これは FreeBSD 5.2.1-RELEASE では
    /usr/bin/env PERL_BADLANG=0 /usr/local/bin/perl ./hoge
と解釈されますが、Linux や Solaris では
    /usr/bin/env "PERL_BADLANG=0 /usr/local/bin/perl" ./hoge
となるため
    PERL_BADLANG="0 /usr/local/bin/perl"
という環境変数が設定されつつ
    /usr/bin/env ./a
が実行されるものの、./hoge のシェバング行にはまた同じ内容が
書かれているため、永遠に
    execve("./a");
が実行されるということですね。

参考:
    http://x68000.q-e-d.net/~68user/unix/pickup?%A5%B7%A5%A7%A5%D0%A5%F3%A5%B0
    の Tips.2

というわけで env コマンドを使うやり方は移植性がありませんでしたが、
    #!/bin/sh
    PERL_BADLANG=0 /foo/bar/baz.pl
なら動くと思います。Linux では動きました。

No. 4899 # べた 2008/03/28 (金) 12:53:23
>> 4898

> #!/bin/sh
> PERL_BADLANG=0 /foo/bar/baz.pl
>なら動くと思います。Linux では動きました。
で動きました。

色々とありがとうございました。

No. 4900 # 68user 2008/04/02 (水) 19:10:27
さきほどお問い合わせページよりご指摘いただきました、ジャンル一覧リンク切れの件、
修正しました。ご指摘ありがとうございます>連絡いただいた方

No. 4901 # 68user 2008/04/18 (金) 13:53:44
2年半ぶりの人材募集です。
http://x68000.q-e-d.net/~68user/tmp/job2.html

No. 4902 # TKC 2008/05/02 (金) 14:09:57
こんにちわ。
findコマンドについて教えてください。

■要件
カレントディレクトリに存在する31日以前のファイル&ディレクトリの削除を実施したい

■コマンド
find ./ -mtime +31 -exec ls {} \; -exec rm -r {} \; >> test.log

■結果
./20070101.trc
find: ./aaa: No such file or directory

■質問1
カレントディレクトリに削除対象となる日付のファイル20070101.trcとディレクトリaaaを配置しています。
削除ファイルの一覧を取得したいため-exec ls {} \;を使用したのですが、
ログには./20070101.trcしか記載がありません。
ディレクトリも表示させるには何かオプションが必要なのでしょうか?

■質問2
実行結果としては削除は行われているのですが戻り値がエラーとなっています。
find: ./aaa: No such file or directoryの部分を指していると思うのですが、
削除後にfindしているように見受けられますがこのエラーの出力原因はなんでしょうか?

1と2の解決方法がありましたら教えてください。
宜しくお願いします。

Prev< No. 4894〜4902> Next  [最新発言に戻る] [過去ログ一覧]