hkoba blog

プログラマーです。プログラミング言語ミーハーです。ツッコミ歓迎です。よろしくどうぞ(能代口調)

zsh

zsh 上で .pm のメソッド名を補完する話

この記事は Perl Advent Calendar 2020 の 12/3 の記事です。 想定読者は、自分で Perl のモジュールを書く機会が有り、かつそのモジュールのメソッドをコマンド行からさっと試したい! と思ったことの有る人です。 Perlモジュール(.pm ファイル)を実行可…

私がシェルスクリプトをZshで書く理由

zsh

まず最初に、4つのファイル foo, bar, *, xxx yyy があるディレクトリがあるとします。(試したい場合は新規のディレクトリで下記のコマンドを実行してください。) touch foo bar \* 'xxx yyy' さてここで、ループを使って各ファイルを一つ一つ、コマンドに…

メモ:Zsh で TSV を読みたいとき、どうするか

zsh

(いつも通り、ツッコミ歓迎です) 問題 例えば TSV (タブ区切りテキスト)形式の正誤表があり、そこから SQLite のデータベースファイルへ更新をかけたい… そんな時、皆さんだったらどうしますか? なお、レコード数は1,000行程度とします。 私はこういうケ…

ssh 先で sudo 実行するコマンドに渡すワンライナーを zsh に quote させる

いつもの通り、ツッコミ歓迎です。 その quote, zsh に任せると幸せ…かも?? 笹田さんのこのツイを見て、おっと zsh 宣伝チャンス、と。 なんで a b 消えちゃうのん?$ sh -c "echo a b; echo c d"a bc d$ ssh host sh -c "echo a b; echo c d"c d— _ko1 (@…

"--name <SPC> value" style options considered harmful for end-user scripting.

追記20170914朝JST: 以下の議論では簡単のため --name value に話を絞り -o VALUE 形式への言及を省略したが、後者においても辞書が必要となる点は変わらない。自明とは思うが念の為… 20170914昼JST: タイトルtypo 修正 >< ストーリー 以前あなたはプログラ…

zparseopts で posix style long option と一文字オプションを両立させる

Zsh の zparseopts を使って -t TYPE --type TYPE --type=TYPE 全部の書き方をサポートしたい場合にどう書くか。 (代入先の配列名を同じにするだけ、だけど) 値の取り出しの書き方を忘れがちなので、メモ。 (我流なので、ツッコミ歓迎です) zparseopts が…

実験: SQLite の `in (...)` 句を *雑に* zsh の配列展開で生成してみる

はじめに ツッコミ歓迎です。 対象DB は SQLite です。 あくまで入力データの特性を完全に把握しコントロール出来る場合しかおすすめしません… 値に single quote (') が入らない保証が有る場合 % values=( foo bar baz ) % print " in (${(j/,/)"${(@qq)val…

再帰globパターン **/ の元祖は zsh なのか、調べてみた

zsh

今日 @satoh_fumiyasu さんのこんなツイートを見かけました。 zsh や rsync にある拡張 glob pattern のひとつ、** の元祖ってどこ?— ふみやす@シェルまおう(自称ではない) (@satoh_fumiyasu) 2016, 2月 10 私もずっと気になっていたので、この機会に調べて…

なぜ私は敢えて Zsh で Shell Script も書くのか、目的合理性はどこにあるのか

zsh

はじめに UNIX, Linux のためのシェルスクリプトを bash どころか敢えて zsh で書くことに、どんな目的合理性があるのか… 個人的な考えをまとめてみます。 #!/bin/zsh の勧めにしたかったけど、途中で力尽きました。 勿論、 万人向けではない話 なので、なる…

zsh 実験メモ:文字列変数の中から空白文字の位置を探したい時…

zsh

ふと迷ったのでメモ。ツッコミ希望です。 foo='key foo bar baz...' のような文字列変数が有るとして、これを key と "foo bar baz..." の2つに分割したい。 要するに perl の split " ", $foo, 2 がしたい。 一旦配列変数に展開してから、2つ目以後を取り…

(zsh) ある日のインフラ業 - bind の入れ替えを例に

雑に記録だけ。 大体、こんな感じだった。(Fedora22 の場合です. P3 の src.rpm はここから download. YMMV) fn=bind-9.10.2-4.P3.fc22.src.rpm rpm -ivh $fn cp ~/rpmbuild/SPECS/bind.spec . # gpg --keyserver pgpkeys.mit.edu --recv-key 911A4C02 # gpg…