年内最後の講義。
卒論チェック。
学生さんのMacでscpする時にワイルドカードが使えない問題、原因がわかった。ZshのGlobbingが問題。もしコマンドラインに何にもマッチしないglobbing expressionが含まれていた場合、Zshはデフォルトでエラーを出す。しかし、scpなどでリモートにファイルがある場合は、実際にはファイルがあるのにマッチしないと判断されてしまう。いろいろ細かい制御ができるっぽいが、とりあえずマッチしなかった時にエラーをださないように
setopt nonomatch
を設定すればOK。scpでのワイルドカードの他、GitのHEAD^などにも影響が出るようだ。
しかしこのglob、英単語だと思ってたら、もともとUNIXの/etc/globというコマンド由来で、このコマンド名はglobalの略だとのこと。初期のUNIXのシェルはワイルドカード展開を/etc/globに依存しており、そのために*や?といったワイルドカードをglobsやglobbingと呼ぶようになったらしい。昔「glob」ってなんだろうと思ってLDOCEで調べたら存在していたので、その単語由来だと思ってた。そちらの方のglobは、なんか液体か泥の塊のことらしい。「a glob of ketchup(ケチャップ一山)」みたいに使う。