大阪市北区に本社を置く、ベンチャー企業株式会社ロックオン!「アドエビス」「EC-CUBE」「THREe」など、多くのNo.1製品を輩出する会社の裏側をお見せします。
![株式会社ロックオン社員ブログ | 大阪市北区に本社を置く、ベンチャー企業株式会社ロックオン!「アドエビス」「EC-CUBE」「THREe」など、多くのNo.1製品を輩出する会社の裏側をお見せします。](https://cdn-ak-scissors.b.st-hatena.com/image/square/04cbec8233355c0c4d688c44d360fe713519deac/height=288;version=1;width=512/https%3A%2F%2Fwww.lockon.co.jp%2Fofficialblog%2Fwp-content%2Fthemes%2Flockon%2Fimg%2Ffb.png)
シェルスクリプトで標準入力を加工する際に若干ハマリかけたので、今回はそのお話をしたいと思います。 みなさんのシェルスクリプトライフの一助になれば幸いです。 標準入力を加工するシェル関数、例えば、 入力を本文とするメールを送るシェル関数 ログを入力として受け取り、集計や解析をするシェル関数 を書く場合、みなさんどういう風に書いているでしょうか。 私は今までこんな風に書いていました… send_mail() { from='sender@example.org' to='receiver@example.org' { echo "From: ${from}" echo "To: ${to}" echo "Subject: test" echo cat - } | qmail-inject -A -f${from} } make_mail_body | send_mail これの何が問題かという
ななし 『ファイルがないと * のままになるので、ls DIR 2>/dev/null と書いたりしますね。』 (2007/07/09 11:10) まぁ、そのとおりなんだけど、ls とコマンド置換を使ってファイル名を取得しようとすると、パスに空白が含まれていたりする場合にはまれる。 % touch 'odz buffer' % ls `ls` ls: odz: No such file or directory ls: buffer: No such file or directoryあと、関係ないけど、-F オプション付きの GNU ls の挙動はなんだかよくわからない。 % ln -s usr . % ls -F usr usr@ % ls -F usr/ X11R6/ bin/ doc/ games/ include/ lib/ lib64/ local/ sbin/ share/
ref:関数プログラミング的なシェルスクリプト via:Ryoの開発日記 - シェルスクリプトよくわかんね どこからつっこめばいいのやら。 コマンド置換とパス展開 ディレクトリ以下のファイルがほしいなら `ls ${2}` ではなく素直に "$2"/* でいいのでは。 クォート どのような入力がくるかわからないときはちゃんと引用符で囲みましょう。 if [ -f $FULL ]; then $1 $FULL; fi ではなく、きちんと if [ -f "$FULL" ]; then "$1" "$FULL"; fi とする。 リダイレクト #! /bin/bash cat $1 | tr -d '\r' > $1 これがうまく動いているのはたまたま。理由は以前書いたので、そちらを参照。 というかね、こういうことはいちいちシェルスクリプトをつくるんではなくて、find と xargs を使う
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く