タグ

shellに関するdmizuno55のブックマーク (8)

  • シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita

    はじめに ことの始まりは「シェルスクリプトでツールを作ったけど速度が遅くて使い物にならなかったので供養」というツイートを見たからです。コードを見てみると、実例をあまり見ないシェルスクリプトのリファクタリング例として丁度良い内容と分量だったため記事にいたしました。記事を書くにあたりコードの利用を快く承諾していただいた @Hayao0819 様にはこの場を借りて御礼を申し上げます。 内容は章立てで構成しており、序章で事前調査をし、第一章で一般的なリファクタリング、第二章でパフォーマンスを重視したリファクタリング、終章で少し余談をして締めくくっています。最初はパイプは並列処理されるから速くなるというのは神話(そうとは限らない)についても書いていたのですが流石に長いので分けました。それでも書きたいことを色々書いていたらめちゃくちゃ長くなってしまいましたので読み物として私がどんなことを考えながらリフ

    シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita
  • iTerm2の機能を使いこなして日頃の作業の効率をあげたい2020 - stefafafan の fa は3つです

    この記事ははてなエンジニア Advent Calendar 2020の6日目の記事です。 qiita.com 5日目は id:mizdra さんによるpolyfill を深堀りするでした。フロントエンド周りは弱い自分としてもこの記事を読むだけでpolyfillの概要から今後どうすると良いかなど知れてとてもありがたい記事でした。 www.mizdra.net さて今日は視点変えてツールの話を書きます。毎日使っているツールこそ、提供されている便利な機能を把握しておきたい。Macで使ってるターミナルアプリ「iTerm2」について書きます。 iterm2.com まずはみんながひょっとしたら知らない基操作についていくつか紹介し、後半はTriggersという機能の使い方をいくつか紹介します。 (記事執筆時点ではver.3.4を使っています) tl;dr 公式ドキュメントにいろいろ書いてあるので読み

    iTerm2の機能を使いこなして日頃の作業の効率をあげたい2020 - stefafafan の fa は3つです
  • fish shellが結構良かった話

    Fishermanは名前を変更しFisherとなったため、それにともない内容を修正しました。 Yaourtはすでに開発が終了しているため、Yayを使うよう修正しました。 Fisherのインストール方法やコマンド体系の情報が古くなっています。プラグイン紹介以下もすべて修正する必要があるため、修正していません。FisherのREADMEを参考にしてください。 「fishいいよ」みたいな話は何度かちらっと聞いていたんですけど、ちょっと調べてみたところPOSIX非互換ということで、あまり興味を持てずにいました。 しかし最近Twitterで勧められて試しに使ってみたところ、すごく良かったので導入方法とかおすすめプラグインとか紹介してみたいと思います。 僕も入門したところなので、あんまり詳しくはないですけど。 似たような内容ですが、目的を絞った記事も書いたので興味があれば読んでみてください。 こっちの

    fish shellが結構良かった話
  • シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳

    Bash は言わずと知れた歴史あるコマンド言語です。テキストにコマンドの羅列を記述するだけで、手軽にシェルスクリプトとして実行することができます。 シェルスクリプトの実体はシェルコマンドの羅列に過ぎませんが、手続き型プログラミング言語にあるような制御構文も備えています。変数や条件分岐、ループ、関数などです。これらを使えばシェルスクリプトでプログラミングも可能です。 もちろん、現代の一般的なプログラミング言語と比べると機能は限られます。他の言語には見られないシェルスクリプト特有の癖や記法も数多くあり、最近の言語に慣れている人ほど、つまずくポイントが多いです。 しかし、シェルスクリプトだからこその良さもあります。Bash は現在でも多くの OS で標準シェルとして採用されており、普段使っているシェルコマンドを書くだけで動かせる手軽さは何者にも代えがたいです。一度身につけておくと長く使えるお得な

    シェルスクリプトを高級言語のような書き味に近づける Tips 集 | 創作メモ帳
  • シェルスクリプトとMakefileの使い分け - ククログ(2012-10-24)

    先日紹介したシェルスクリプトで「ビルドスクリプト」を作る時に便利なテクニックへのコメントとして「なぜMakefileでやらないのか」「Makefileの方がいいのではないか」といったものがありました。確かにmakeはメジャーなビルドツールなので、そのような疑問が出てくるのも当然でしょう。 なぜシェルスクリプトなのかということの理由はいくつかあります。 1つは、先のエントリの題材としたスクリプトが元々はWindows用のバッチファイルをLinuxのシェルスクリプトに移植したものだったからという理由です。Windowsのバッチファイルのベタ移植として作成したシェルスクリプトを継続的にメンテナンスしてきた間の改良の結果として、いくつかのテクニックが盛り込まれるようになったため、そのテクニックにスポットを当てて紹介しようというのが、先のエントリの発端でした。 もう1つは、シェルスクリプトは「シェル

    シェルスクリプトとMakefileの使い分け - ククログ(2012-10-24)
  • HUPシグナルとnohupとdisownとバック/フォアグラウンドジョブの理解 - Qiita

    人に教えるには自分が完全に理解していなければ、ということで調査・検証した結果。 動機 シェルからバックグラウンドで処理を行うには? nohup コマンド実行 & を使う。 コマンド実行 => Ctrl-Z => disown を使う。 定番は前者だが、両者の違いは何なのか? disownとは一体何をするのか? この機会に調べてみた。 結果のまとめ 長くなったので最初にまとめを。しかしまとめも長い。 (後自分が読む時に一番下にスクロールしたくないので…) ジョブテーブル シェルはセッションに紐づくジョブテーブルを持っている。 バックグラウンドジョブを登録している。 (フォアグラウンドジョブは未確認。ソースを読むしかないか) jobsビルトインコマンド で一覧を参照可能。 ここに見える限り、シェルのexit時にSIGHUPを送る。 この一覧にない場合、exit時にSIGHUPは送らない。 シェ

    HUPシグナルとnohupとdisownとバック/フォアグラウンドジョブの理解 - Qiita
  • 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) - Glamenv-Septzen.net

    ホーム 検索 - ログイン | |  ヘルプ 技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他) [ Prev ] [ Next ] [ 技術 ] 何をいまさら当たり前の事を・・・と思われるだろう。 $ nohup long_run_batch.sh & SSHからログアウト後も実行を続けたいバッチジョブを、"&"を付けてバックグラウンドジョブとしてnohupから起動するのは定番中の定番である。 しかし、「nohupを使わなくても実行を続けることが出来る」やり方があったり、さらには「nohupを付けてもログアウト時に終了してしまう」パターンがあるとしたらどうだろう? そして、ある日あなたの後輩や同僚がこれらについてあなたに質問してきたら、あなたはどう答えるだろうか? 「Web上で検索したら見つか

  • シェルスクリプトでの変数定義 - Qiita

    シェルスクリプトを使っているときに、変数 VAR が定義されていない場合の初期値を設定する方法 if文を使った方法 これが一般的かもしれないが、書き方としては冗長になってしまう 変数 VAR がNULL(文字列の長さが0)かどうかを判定して、NULLであれば値を代入する

    シェルスクリプトでの変数定義 - Qiita
  • 1