はじめに こんにちは、皆さん。今日は、シェルスクリプトを使った高度な自動化のベストプラクティスとパターンについて解説します。これらは、ちょっとした知識で実行でき、作業を大幅に効率化できるTipsです。シェルスクリプトは、特にUNIX系システムでの自動化タスクに欠かせないツールです。適切に使用すれば、複雑なタスクを効率的に、そして信頼性高く実行できます。 トイルとは、反復的でマニュアルな作業のことを指します。これには、例えば、手動でのシステムのスケーリングや、エラーのトラブルシューティング、ルーティンなメンテナンス作業などが含まれます。トイルを特定し、それを自動化することで、エンジニアはより創造的なタスクやプロジェクトに焦点を合わせることができます。 トイルを判別する方法としては、以下のような基準が挙げられます: 手作業であること 完全な手作業だけでなく、「あるタスクを自動化するためのスクリ
This article is about a few quick thumb rules I use when writing shell scripts that I’ve come to appreciate over the years. Very opinionated. Things¶ Use bash. Using zsh or fish or any other, will make it hard for others to understand / collaborate. Among all shells, bash strikes a good balance between portability and DX. Just make the first line be #!/usr/bin/env bash, even if you don’t give exec
bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set
yasuさんに教えていただいたのでメモです。 vimで雑にCtrl+Vとかでコピペしたコードをペーストすると,インデントが崩壊する事が多々あります。 ですがそんな時に :set paste としてペーストすると良い感じにペーストされます。すごい!!! 知るまで ちなみにこれを知るまではemacs開いてペーストしてました…。雑魚じゃん…。 さらに便利 id:ST_ha1cyon くんより ちなみに:set pasteした後、:set nopasteするともとに戻るぞい id:mattn さんから set paste をトグルするキーを設定するための pastetoggle というオプションもあります。詳しくは :help pastetoggle を。 さらに :i! :a!もいけるらしい .すごい
とある環境で、いただいたApacheの設定ファイルを配置し、configtestを行うと、以下のエラーが出た。 Invalid command '\xef\xbb\xbf', perhaps misspelled or defined by a module not included in the server configuration ファイルの文字コードは、UTF8でしたが、"EF BB BF"は「BOM」と呼ばれる、テキストがUnicodeで書かれているか、や、記述形式の識別を行うための符号らしい。 (恥ずかしながら初めて知った。) ■BOM (Byte Order Mark, バイト・オーダー・マーク) UnicodeのUTF-16などの16bit単位の文字エンコーディングスキームでは、8bit単位でデータを配列する際のエンディアンとして、ビッグエンディアンとリトルエンディアンの
(この記事は「WindowsでGo」の第2回です) 整備指針・開発環境 さて、Go でのプログラミング環境を整えるにあたって、指針を決めておこう。 まず開発環境だが、この一連の文書で想定するのは以下のとおり: Windows Windows 8.1 x64で動作確認。 おそらくそれ以前・以降でも動く CygWin/Mingw とかは(直接的には)使わない なんか Windows でコーディングしてると石を投げられそうな風潮が最近あるが、 個人的に、 Apple製品を買ってはならないという一族の掟がある 自分の若いころはX環境なんか一部のブルジョアのものだったんじゃあ!というねたみ から、Windows にこだわる。異論は認めない。 また、ツール類のインストール時には、 できるだけ再現性の高い方法をとる ようにする。make && make install でいいと思っていた時代が、ぼくにも
vimでペーストめんどくさい Vimのインサートモードで普通にペーストすると、なんか謎のインデントが入りますよね。 set :pasteとかやってから貼り付けて、set :nopasteするとこれを回避できるんですが、これがめんどくさい。 この一連の流れをマッピングできたらよかったんですが、ペーストするCmd-vは僕の場合は多分iTermが処理してるらしく、無理そう。 vimでペーストするときインデントさせないみたいな記事もあるけど、1発で貼り付けられない時点で明らかにめんどくさい。 pbpasteを使う Macには、pbpasteというclipboardの中身を出力するコマンドがある。 これと、:r !commandがcommandの出力を挿入することを組み合わせると…?
自動ファイルタイプ検出 vimでは起動時(厳密にはバッファに展開時)に自動でファイルの拡張子に対応したファイルタイプを選んでくれる機能がついている これを有効化するには、.vimrcに filetype on と記述すればよい だが、一般的なファイルタイプについては自動で設定が反映されるものの、少し外れると設定が無かったりする そんなときは自分で、 :set filetype=hoge や、その短縮形である setf hoge などとして都度読み込む必要がある これは非常にめんどくさい 解決策 vimは起動時にfiletype.vimというファイルを読み込むことでこの自動検出を行っている 僕のMacでは/usr/share/vim/vim73/filetype.vimに存在しているが、この中を見ると以下の行がある runtime! ftdetect/*.vim この行はftdetect以下
http://la.ma.la/misc/js/set/ Pythonのset型をjsに移植してみた。setってのは要素が重複しないリスト。 http://www.python.jp/doc/release/lib/types-set.html 配列として扱いたいケースが多いように思うのでArrayを拡張してSetのメソッドを加える感じで作った。制約付きの配列、みたいな感覚で扱えるように。addやupdateを使わずにpushを使って要素を追加すると重複してしまう(pushも上書きすればいいけど、直接値を代入されたらどうせ防げない)。なので厳格ではない。格納できるのはstringとnumberとboolean型のみ。でもエラーが出るわけでもない。そこら辺いい加減なので作り直すかも。 用途としてはAさんとBさんとCさんがブックマークしてるURLとか、にも関わらずあなたがブックマークしてないU
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く