Koichi Nakashima Profile
Koichi Nakashima

@ko1nksm

Followers
762
Following
545
Statuses
3K

おそらくウェブアプリエンジニア。フロントやったりサーバーやったりたまにインフラ。シェルスクリプト関連のマイナー技術の紹介や既存情報の更新と訂正を行っています。好きなもの:シンプルで無駄のないコード、リファクタリング。嫌いなもの:技術的負債、レガシーコード ※ 技術と無関係なつぶやきは基本的にしていません。

Japan
Joined September 2012
Don't wanna be here? Send us removal request.
@ko1nksm
Koichi Nakashima
3 years
For all POSIX compliant shell scripts (sh, dash, bash, ksh, mksh, zsh, busybox ash, etc) - Unit test framework - Option parser (generator) - dotenv - readlink -f
0
5
30
@ko1nksm
Koichi Nakashima
2 hours
toyboxに含まれるtoyshがbashのサブセットで開発してるので、それが完成したらmacOSはtoyshに変更できるのではないかと希望を持っている。
@mutuki
hiroshi
4 hours
macOSだけで動くスクリプト書くならシェバンを #!/bin/zsh にすれば良いだけなんだけど、環境に悩まない汎用的なメモみたいに置く時にはbashにしたい。そういう意味では拡張globとか連想配列が使えるバージョン4まではシステムシェルも更新していて欲しかった
0
1
4
@ko1nksm
Koichi Nakashima
7 hours
シェルスクリプトの条件分岐の書き方がわかりにくいのは、おかしな条件分岐の書き方をしているからだよ。 記号がわかりにくいなら、記号を使わなくて良いシェル関数ライブラリを実装すればいいだけだよ。
@EzoeRyou
江添亮
13 hours
マジで条件分岐一つ書くのにとてもわかりにくい一見して意味のわからない記号の羅列を書く必要がある言語はどうかしている。
0
2
2
@ko1nksm
Koichi Nakashima
7 hours
トリビア: sedの-iオプションの書き方はGNUとBSDで違うと言われるが、実際にはFreeBSD(macOS含む)だけ違い、他のBSDはGNUと同じである。 元はPerl由来でGNUは真似て実装し、FreeBSDは意図的に変更して実装した。FreeBSDの仕様をGNUと同じに変更する計画は進んでいない。
0
2
3
@ko1nksm
Koichi Nakashima
19 hours
sedのsコマンドのiとIって機能としては同じだよなぁ?と思って検索しづらいから念のために聞いてみたんだが、これはひどい。いくつツッコめば良いのか何を言ってるのか理解できない。
Tweet media one
0
1
1
@ko1nksm
Koichi Nakashima
21 hours
メールの送信は、スパム関連でいろいろ面倒なことになるから、結局SendGridとか使ったほうが良いしね。
@ko1nksm
Koichi Nakashima
21 hours
curlはSMTPに対応しているからgmailとかでもシェルスクリプトからメール送信できる。そのやり方、記事にする必要あるかな? メール本文はUTF-8でいいし、今は昔よりも簡単にメール送信できるようになってるけど、今どきシェルスクリプトからメール送信ってやる?と思って書いてない。
1
5
23
@ko1nksm
Koichi Nakashima
21 hours
@SeahalJa (独り言)前に調べたときはjqの@base64使ってサブジェクトをBase64に変換していて、でも今は、curlの--expand-headerで変換できるからjq不要になっていて、再確認しないと、またやり方変わってるんだろうな。
0
1
9
@ko1nksm
Koichi Nakashima
21 hours
前にcurlの使い方まとめたときのバージョンなんだろうと思ってみてたら、メモに8.30って書いてあった。最新版は8.12。まだ出とらんじゃないか!(8.3.0の間違いだろう)
@ko1nksm
Koichi Nakashima
21 hours
@SeahalJa もしメール送信するならこんな感じです。調べれば見つかる思いますが curl --url "smtps://smtp.gmail.com:465" --ssl-reqd --netrc \ --mail-from "送信元アドレス" --mail-rcpt "送信先アドレス" \ -H "From: 送信元アドレス" -H "To: 送信先アドレス" \ -H "Subject: test" -F "= this is test"
0
1
5
@ko1nksm
Koichi Nakashima
21 hours
@SeahalJa 前に調べたときは、FILE、HTTP、SCP、SFTP、FTP、TFTP、SMB、TELNET、LDAP、RTMP、RTSP、websocket、GOPHER、DICT、LDAPとかに対応しているのを確認しました。対応が中途半端なのもありましたが。
0
0
0
@ko1nksm
Koichi Nakashima
22 hours
そこに書いてあるようによりよい答えは sudo pkill coreaudiod ですね。 coreaudio[a-z]って、coreaudioa、b、c、... ってあるのかと思った。この回答を書いた人がそう勘違いしただけか。killで-9なんてひどいやり方はしない。psの出力をgrepしてawkとかしない。とか言いたいことは全部書いてあった。
@kponda
ポンダ
1 day
macOS再起動すれば治るけど再起動なんて週1回するかしないかなので面倒すぎる 音周りのサービスだけ再起動したらいいかな?と思ってググって出てきたこのコマンド実行したら治ったっぽいのでメモ sudo kill -9 `ps ax|grep 'coreaudio[a-z]' | awk '{print $1}'
0
1
3
@ko1nksm
Koichi Nakashima
1 day
macOS、FreeBSD、OpenBSD(おそらくここが大元)のman grepに、-ruyの使用は強く勧めないって書いてあるの理由は何なんだろうか? uyはわかるとして-r。POSIXあたりで再帰オプションを-Rに統一しようとしてたからぐらいしか思いつかない。
0
0
0
@ko1nksm
Koichi Nakashima
2 days
なんか変なメールが来たと思ったら。リンク先開かないほうが良いなと思ってゴミ箱に捨てたが正解だったようだ。
0
0
0
@ko1nksm
Koichi Nakashima
2 days
その頃には32bit UNIX時間を使っているUNIXは消えているのでは? サポート切れの古いシステムを延命して使い続けてる所があるか知らんけど、あと13年の寿命で動かなくなるというだけさ。
@ebiebi_pg
えび@プログラマー
2 days
2000年問題に対応した事のある汎用機エンジニアに 「2038年問題?そんな中途半端な年に起こる問題なんて大したことないやろw」 と言われた事がある。
0
0
0
@ko1nksm
Koichi Nakashima
2 days
「}」の後のセミコロンは、元々Solarisは対応しておらず、POSIX.1-2024で便利だからと受け入れられた構文 POSIXにはしっかり書いてあるが、こんなのを把握して書ける人はいない。シェルスクリプトの移植性問題は別の環境で動かして発覚する。
0
0
1
@ko1nksm
Koichi Nakashima
2 days
AIXの/bin/shは20〜30年前のksh88fなので使いづらい。しかもset -e周りにバグがあってPOSIXに準拠してない。ShellSpecが動くように修正して欲しい。 AIXのksh93もksh93tだったか古いやつでバグが多く安心して使えない。ksh93u+mを標準にしてほしい。IBM Cloudには最新のbashが最初から入ってるけど。
@riku_cha
りくちゃ🐌
2 days
AIXを長く使っているとね、kshがいちばん使いやすいと思��ようになってしまうんですよ。
0
1
4
@ko1nksm
Koichi Nakashima
3 days
@knaka シングルですねw エイリアスは、はい、その問題はあります。普通の関数かと思って引数の前後になにかつなげるとトラブルになりかねないので。使用はお好みでどうぞ。
0
0
0
@ko1nksm
Koichi Nakashima
3 days
@knaka シングルクォートですねw aliasで関数に見せかけてるのも個人的にポイントです。bashは遅くはないのですが、dashの速さと比べると差があるはずなので、配列が使えるシェル用に改善できないかな?と思っています。関数インターフェースを変えずに実装できるかはわかりませんが。
1
0
0