Linux Tips : $マークには気をつけろ
こんなことは熟練プログラマには当たり前のことかもしれませんが、ちょっとはまってしまったのでメモしておきます。
やりたかったこと
簡単にいうと、こういうことがやりたかったわけです。
Dir.glob("#{@dir}*").each do |path| if system("sendmail -t < #{path}") File.delete(path) end end
ディレクトリを読んで、そこにあるファイルを1つずつ sendmail に渡して送ってもらう。ただ、それだけです。
特に悪いような気はしませんし、実際これである程度動いていたわけです。ところがあるとき、いっこうに送られないファイルがでてきてしまいました。それはこんなファイルでした。
004901c908ac$5b8f60d0$1b50280a
これが送れないんです。手で直接やっても同じくエラーになります。
$ sendmail -t < 004901c908ac$5b8f60d0$1b50280a bash: 004901c908acb8f60d0b50280a: No such file or directory
こう(↓)すると大丈夫でピーンときました。
$ sendmail -t < 004901c908ac\$5b8f60d0\$1b50280a