tkuchikiの日記

新ブログ https://blog.tkuchiki.net

bash

bash で特定のコマンドを実行前にキャンセルする

DEBUG を trap すれば、コマンド実行前に任意の処理を挟めるということがわかったので、特定のコマンドが入力されたらキャンセルできないか試してみました。 COMMANDS=$(cat <

bash の history からコマンドを実行できなくする & コマンドの履歴は見られるようにする設定

bash で以前実行したコマンドを ↑ キーや Ctrl+p、Ctrl+r で検索すると思います。 このとき、 以前実行したコマンドの引数を一部変えて実行したいから history からコマンドを探して一部だけ書き換えようと思っていたのに間違えて Enter を押してそのまま実…

Mackerel のホスト名を ssh の補完候補リストに出力する

この記事は、Mackerel Advent Calendar 2015 8日目の記事です。 Mackerel に登録しているホストに ssh するとき、 補完できたら楽かもしれないと思い、その実現方法を模索してみました。 補完機能を一から書くのは大変なので、 bash-completion を使います。…

Bats を使って Travis CI で bash(シェルスクリプト) のCI を回す

Bats で bash のテストを書く - tkuchikiの日記 の続きです。bash のテストができるようになると CI を回したくなりますよね。 ということで、Travis CI でテストを回すまでの方法を説明します。https://github.com/tkuchiki/bats-travis-ci にすべてのコー…

Bats で bash(シェルスクリプト) のテストを書く

※記事を書いて公開するまで1年くらい経っているので情報が古い可能性があります。Bats(Bash Automated Testing System)は、bash のテスティングフレームワークです。sstephenson/bats · GitHubTest Kitchen(Bussser) の Bats plugin で使うことができるので…

apache の Directory ディレクティブの重複しているパスを出力する

検証した apache のバージョンは、2.2.29 です。apache の VirtualHost が大量にある環境で、 Directory ディレクティブのパスが重複しており、 意図しない設定で上書きされてしまう問題に苦しめられました。 ので、それを解決する方法です。以下のスクリプ…

指定ディレクトリ以下に配置している gem を install し直す script

ユースケースとしては、CentOS 6 標準の ruby 1.8.7 を使っていた想定で、 /usr/lib/ruby/gems/1.8/gems に入れている gem を、 /rh/opt/ruby193 に gem を install し直すような用途の script です。gem のディレクト名を awk と sed で parse して、 gem i…

Bash で動作するプログレスバー

tkuchiki/bash-progress-bar · GitHub を実装しました。実装した関数は2つで、 progress_bar TIMES CURRENT は、TIMES に何回繰り返すか、CURRENT が何回目かを引数に取ります。 TIMES=10, CURRENT=1 の場合、1 / 10 * 100 = 10% のようになるので、 決まっ…