タグ

ブックマーク / qiita.com/ko1nksm (4)

  • Unixの歴史の起源を伝説のゲーム「スペース・トラベル」で遊んで学ぼう! - Qiita

    ちなみに Space Travel にスコア機能やゲームのなにかを記録する機能はありません。描画は点と線だけで画像ファイルの読み込みなどは行いません。オリジナルの Space Travel は紙テープから起動してオンメモリで動くはずです。何が言いたいかというと Space Travel を動かすためにファイルシステムを作る理由はないということです。紙テープからの起動なんて時間がかかるのでは? と思ったあなたは鋭い。1980 年頃の音楽用のカセットテープをコンピュータの記憶媒体として使っていた時代では、実際にゲームを始める前のロード時間に何分も待っていました。 初期の Unix 開発の技術は Space Travel から学んだ さて、この記事は Space Travel を通して Unix 開発の初期の歴史や、なぜケン・トンプソンは Unix を開発するに至ったのかを知ろうというのが趣旨の

    Unixの歴史の起源を伝説のゲーム「スペース・トラベル」で遊んで学ぼう! - Qiita
  • 【POSIX準拠】set -o pipefailを使おう!ただしdash、テメーはダメだ - Qiita

    はじめに set -o pipefail は POSIX で標準化されているシェルオプションです。パイプラインにおけるエラーを確実に検出するために、シェルスクリプトでは基的に使うようにしましょう。 某コメントより “set -o pipefail は標準化されました” っていってここ何年かの標準化を無邪気に正当化できるのいいなと思う(目の前のターミナルを見ながら) どのシェルを今使っているのか聞きたいですね。商用 Unix を含む主流の環境で、すでに何年(十数年、数十年)も前から set -o pipefail は実装済みなんですが? おそらくシェルの事をよく知らないで言ってるのでしょう。私は標準化の有無は関係なく実際のシェルのことを調べ尽くして言ってるわけで無邪気に正当化とか失礼な話です。標準化とか気にしてるから何年(十数年、数十年)も前に実装された便利な機能が使えないんですよ。自業自

    【POSIX準拠】set -o pipefailを使おう!ただしdash、テメーはダメだ - Qiita
  • シェルスクリプトの $* と $@ の違いと雑学色々 - Qiita

    まず位置パラメータを含め変数を参照する時にダブルクォートしないのは無しです。理由は予期せぬ変数展開やパス名展開が行われるからです。詳細は「シェルスクリプトの変数はダブルクォートしなければいけない!という話」を参照してください。この理由により上半分は「使いません」で終わりです。 ダブルクォートはほぼ必須ですが { } は必要な時だけ書けば十分です。常に ${var} のように { } を書く人がいるようですが、そういう人に限って面倒なのかダブルクォートをしてないことをよく見かけます。逆です。省略可能なのは { } であり、ダブルクォートは(当に不要な場合を除き)省略できません。常に { } を使ってもかまわないと思いますがダブルクォートも書きましょう。 ❌ ${var} ・・・ ダブルクォートが抜けている! ⭕ "$var" ・・・ このように書け! ⭕ "${var}" ・・・ 問題ない

    シェルスクリプトの $* と $@ の違いと雑学色々 - Qiita
  • シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita

    はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見

    シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
  • 1