〜2015年3月上旬〜
へたってしまったのか、気づくとボタン押しても反応ない状態に。
1日使って確認してもほとんど減ってないんだけどなあ。
毎日充電するのも面倒だよな。
会社で履いてるサンダルに足つぼインソールを入れたら結構快適。
ただサンダルなのでどんどん後ろにずれる。
なにかいい滑り止めはないかと思ったら、でかめ輪ゴムがいい感じだ。
本の付録を挟むときに使われてるくらいの大きさ。
これをインソールの下に入れると摩擦がいい感じになってずれなくなる。
ただそうは言っても徐々にあちこち移動するので、
いつのまにか輪ゴムがはみ出ることも。
shの落とし穴としてreadをパイプで受け取ると別プロセスになるので参照できないってのがあるが、
bashだとshopt -s lastpipeで回避できるようだ。
% bash -c 'echo foo|read a;echo $a' % bash -c 'shopt -s lastpipe;echo foo|read a;echo $a' foo<()技を使わなくてもよくなるのはわかりやすい。
pipeを使うと最後に実行したコマンドの終了ステータスが$?にセットされるが、
bashだとset -o pipefailで失敗した値が設定される。
% bash -c 'false | true; echo $?' 0 % bash -c 'set -o pipefail; false | true; echo $?' 1
1年前に知りたかった。
なんかいつの間にそんな挙動になっていて不便極まりない。
ぐぐってみるとどういうわけか設定で
[システム]-[ハードウェア アクセラレーションが使用可能な場合は使用する]
をチェックすると起こるらしい。確かに最近これ何気なくチェックした記憶がある。
まさか、こんな設定が関係するとは。
最近timeコマンドの-f "%E %C"を多用してる。
実行時間とコマンドラインを表示してくれるので便利だが、
ワイルドカードを使うとひどいときは何行も表示されてうっとうしい。
そこでcutでも使って適当に100文字ぐらいに切り詰めようかと思ったら、
stderrに表示されてるので困った。2>&1したら意味がないし。
で、bashを使ってたので以下の方法を思いついた。
とりあえず20文字で切ってみる。日本語は考えない。
$ /usr/bin/time -f "%E %C" ls 12345678901234567890 ls: cannot access 12345678901234567890: No such file or directory Command exited with non-zero status 2 0:00.00 ls 12345678901234567890 $ /usr/bin/time -f "%E %C" ls 12345678901234567890 2> >(cut -c-20 >&2) ls: cannot access 12 Command exited with 0:00.00 ls 123456789
だめだめである。そりゃ他にもstderrに出してるのもいるわけで当然ではある。
要するに最後の行だけ処理すればいいわけで、となるとsedなら簡単だ。
$ /usr/bin/time -f "%E %C" ls 12345678901234567890 2> >(sed '$s/\(.\{20\}\).*/\1 .../' >&2) ls: cannot access 12345678901234567890: No such file or directory Command exited with non-zero status 2 0:00.00 ls 123456789 ...
ついでに省略した部分は...で表わすことにした。あとはfunctionなりスクリプトにするなり。
torneで録画しておいた番組に字幕がつくようになってしまった。
設定をいじった記憶もないし、そもそもどこで設定するのかわからない。
やっと再生中の△でのメニューの中に見つけたが、こんなのいじらないしなあ。
と思ったが、そういえばリモコンにまんまSUBTITLEボタンが存在していた。
これか。間違えて押した可能性が高いな。
CTRL-Rで過去のヒストリーを呼び出してからAlt-.すると微妙に違う。
zshは常にヒストリーとは関係なく前回のコマンドラインが対象だが、
bashだと呼び出したヒストリーの前のコマンドラインが対象になる。
このbashの仕様はすごく使いづらい。
しかたなく!$するわけだけど、
もうAlt-.するのが癖になってるのでつい打ってしまう。
とりあえず無理矢理こうすればzshと同じ挙動になるようだ。
$ bind '"\e.": "!$\e^"'
!$を\e^で展開させる。ちょっとこの設定で使ってみよう。
Alt-.って連続で打てば次々過去に遡れるわけで、
昨日の設定じゃそれができなくなる。
どっちを取るかだな。
便乗して。find派としてはやはりfindのみで。
% find . \( -iname '*.jpg' -o -iname '*.gif' -o -iname '*.png' \) \! -name '*_thumb*' -delete
-name '*.[jJpPgG][pPnNiI][gGfF]'はちょっと強引すぎるような。