hagio.org - 日記

Powered by PENS


Index

2009: 1月(1)(2) 2月(1)(2) 3月(1)(2) 4月(1)(2) 5月(1)(2) 6月(1)(2) 7月(1)(2) 8月(1)(2) 9月(1)(2) 10月(1)(2) 11月(1)(2) 12月(1)(2)
2010: 1月(1)(2) 2月(1)(2) 3月(1)(2) 4月(1)(2) 5月(1)(2) 6月(1)(2) 7月(1)(2) 8月(1)(2) 9月(1)(2) 10月(1)(2) 11月(1)(2) 12月(1)(2)
2011: 1月(1)(2) 2月(1)(2) 3月(1)(2) 4月(1)(2) 5月(1)(2) 6月(1)(2) 7月(1)(2) 8月(1)(2) 9月(1)(2) 10月(1)(2) 11月(1)(2) 12月(1)(2)
2012: 1月(1)(2) 2月(1)(2) 3月(1)(2) 4月(1)(2) 5月(1)(2) 6月(1)(2) 7月(1)(2) 8月(1)(2) 9月(1)(2) 10月(1)(2) 11月(1)(2) 12月(1)(2)
2013: 1月(1)(2) 2月(1)(2) 3月(1)(2) 4月(1)(2) 5月(1)(2) 6月(1)(2) 7月(1)(2) 8月(1)(2) 9月(1)(2) 10月(1)(2) 11月(1)(2) 12月(1)(2)
2014: 1月(1)(2) 2月(1)(2) 3月(1)(2) 4月(1)(2) 5月(1)(2) 6月(1)(2) 7月(1)(2) 8月(1)(2) 9月(1)(2) 10月(1)(2) 11月(1)(2) 12月(1)(2)
2015: 1月(1)(2) 2月(1)(2) 3月(1)(2) 4月(1)(2) 5月(1)(2) 6月(1)(2) 7月(1)(2) 8月(1)(2) 9月(1)(2) 10月(1)(2) 11月(1)(2) 12月(1)(2)
2016: 1月(1)(2) 2月(1)(2) 3月(1)(2) 4月(1)(2) 5月(1)(2) 6月(1)(2) 7月(1)(2) 8月(1)(2) 9月(1)(2) 10月(1)(2) 11月(1)(2) 12月(1)(2)
2017: 1月(1)(2) 2月(1)(2) 3月(1)(2) 4月(1)(2) 5月(1)(2) 6月(1)(2) 7月(1)(2) 8月(1)(2) 9月(1)(2) 10月(1)(2) 11月(1)(2) 12月(1)

今月のアルバム [ 投稿 | 編集 ]


編集

May 2009

May 26 (Tue)

21:23

オレのいけ好かないタレントランキング堂々 3 位の福山雅治であるが、 ある発言がきっかけで一挙にランク外になったので報告しておく。

福山雅治といえば、イケメンでトークもできて歌も作れて演技もできて、そしてエロいという (これ重要)、 スペックとしては完璧すぎるが故にどうも好きになれない男なわけだが、彼が長崎県出身であるということを忘れてはいけない。 長崎から上京して 20 年、凱旋ライブへの署名活動で長崎市民 6 万人超の署名を集めて男泣きした彼が言った一言、

「今、実はちゃんぽん屋を作りたいんですよ、本気で。東京ではうまいちゃんぽんを食べたことが一度もないんで」

ズキュウウゥン

May 21 (Thu)

18:50

bash でよく混乱するのが引用符の使い方であるが、今日も遭遇したのでメモしておく。

例えば、以下のようなファイルがあったとしよう。

[hagio@lab ~]$ cat aaa.txt a a a

これをシェル変数 tmp に代入して、echo すると・・・

[hagio@lab ~]$ tmp=$( cat aaa.txt ) [hagio@lab ~]$ echo $tmp a a a

なぜ横になるんや…。ちなみに、-e オプションを付けてもダメである。

[hagio@lab ~]$ echo -e $tmp a a a

set で見ると、次のようになっている。

[hagio@lab ~]$ set | grep tmp tmp=$'a\na\na'

で、結局どうすればいいかと言うと、二重引用符で変数をくくる。

[hagio@lab ~]$ echo "$tmp" a a a

今日はこれを理解します。(つづく)

***

答えは、bash の man の中にあった。

単語の分割

シェルはパラメータ展開・コマンド置換・算術式展開 (ダブルクォートの内部ではこれらの展開は行われません) の結果をスキャンし、単語分割を行います。シェルは IFS のそれぞれの文字を区切り文 字として扱い、他の展開の結果をこれらの文字によって単語に分割します。IFS が設定されていないか、その値が正確にデフォルト値の <スペース><タブ><改行> ならば、IFS 文字の任意の列で単語が区切られます。 ...

改行でも単語の分割が行われるが、ダブルクォートで括ればそのままコマンドに渡される。 要するに、以下の二つのコマンドは等価ってことだ。

[hagio@lab ~]$ echo $tmp a a a [hagio@lab ~]$ echo a a a a a a

[hagio@lab ~]$ set | grep IFS IFS=$' \t\n'

シェルスクリプト組むときには気をつけよう。

5 月(1) へ


↑戻る