From: osamu ohshima Date: 2005-10-12T22:03:48+09:00 Subject: [ruby-list:41273] #grepのパターンに変数を使う方法 はじめまして、大島と申します。 1年以上ROM(最近見かけなくなった表現で恐縮です)でしたが、初めて ruby-listへお尋ねします。 自作USB機器をLinux上のrubyで制御することを考えていますが、USBは抜き差し するとデバイス番号が変ります。USBハブのポート位置は変えないので次のよう なコードでデバイス番号を自動取得することを考えました。(例えば次のようなdmesg の最後に出てくる最新のデバイス番号を取得したい) $ dmesg | grep FTDI の一部 sb 2-1.3: new full speed USB device using ohci_hcd and address 5 usb 2-1.1: FTDI 8U232AM Compatible converter now attached to ttyUSB1 usb 2-1.3: FTDI 8U232AM Compatible converter now attached to ttyUSB2 #rubyのコード str=`dmesg | grep FTDI` str.grep(/usb 2-1.3/){|line| @dev=line.scan(/ttyUSB./) } DEVICE="/dev/"<<@dev[0] この場合、2行目のマッチングするパターン"/usb 2-1.3/"をプログラムの中に直 接書くのではなくて、includeする別のファイル中で定義する定数として与える 方が、状況が変ってもコードを直接いじらずに済むのでありがたいのですが、 そんな方法はあるでしょうか。 #rubyは50歳で勉強し始めましたが、正に「五十の手習い」としては、とてもあ りがたい、おじさんにとっても優しい言語ですね。 -- 大島 修 e-mail: ohshima@po.harenet.ne.jp