bash

git コマンドを alias してるときにも補完を効かせる方法

プログラマなら呼吸をするように git コマンドを使うと思うので、git っていう 3 文字でさえ長過ぎますよね。 ということでみなさま .bashrc などで alias g='git'みたいなことをしてると思いますが、この場合 git-completion.bash による補完が効かなくなっ…

長時間かかったコマンドの実行完了を bash でも terminal-notifier でお知らせしたい

[2016.02.19 追記] スクリプトにバグがあったので修正しました [追記ここまで]世の中には CLI から OS X の通知を出せる terminal-notifier という素晴らしいツールがありまして、github.comこれを brew でインストールしたりなんかすると $ terminal-notifi…

最近のCygwinでbashのプロンプトにgitのブランチ名を表示する方法

以前はgit-completionパッケージをインストールして/etc/bash_completionをsourceすればよかっただけのような気がするのですが、最近はこれだとgitコマンドの補完は効くけどプロンプトに表示する__git_ps1が定義されていないようです。解決策としては、GitHu…

gcc などの出力に色をつけるプログラム

コマンドラインで gcc などのコンパイラを実行したり複数のファイルを make によってビルドするときなどに、ついついコンパイラからの出力メッセージを目視してしまう私のような情弱は、ある程度規模が大きなプログラムになると警告やエラーメッセージが他の…

Tizen の sdb コマンド向け bash completion のご紹介

この記事は Tizen Advent Calendar 2013 に参加予定の記事です。 Tizen でアプリを開発していると、コマンドラインからアプリのインストールやアンインストール、ファイルのコピー、デバイスのシェルへのアクセスなど、いろいろと便利な sdb コマンドを使い…

bash スクリプトの中でそのスクリプト自身が置かれているディレクトリを絶対パスで取得する方法

[2017.04.04 update] shellcheck でエラーが出ないように修正 [/2017.04.04 update]イディオム的な。 BASE_DIR="$( cd "$( dirname "$0" )" || exit; pwd )" いつも忘れるのでメモ。

複数のターミナル間で bash のヒストリを共有する方法

Guake とか Terminator とか iTerm とか Console2 とかでタブを開きまくっていると、あっちのタブで入力したコマンドがこっちのタブにはヒストリとして出てこない!ムキーっってなりますね。特に超絶かっこいいワンライナーを書いた時にそれを再利用するため…

bash スクリプトで複数行を一気にコメントアウトする方法

ヒアドキュメントを使う。 echo a echo b <

bash スクリプトで変数に値がセットされていない時だけデフォルト値を設定する方法

: ${X:="value"}先頭に :(コロン)とそれに続いて空白を指定するのがミソ。 : は bash の組み込みコマンドで、渡された引数の展開だけを行うコマンドです。これで X という変数が存在しないか存在していても値が null のとき、X に "value" という値が設定…

bash でコマンドの先頭にバックスラッシュ(もしくは¥記号)の意味

rvm で Ruby を install しようとすると、 \curl ... っていう感じのコマンドを入力しますよね。この先頭の \ ってなんだろう?と思っていたのですが、エイリアスをエスケープして(つまり素のままの curl で)コマンドを実行するという意味があるんですね。…

標準出力と標準エラー出力をまとめて一つのファイルにリダイレクトする方法

いつも↓の暗号を忘れるのでメモw$ command >foo 2>&1リダイレクトは右から順番に評価されるとのこと。2>&1 の意味は、1(標準出力)の FD を dup (&) して 2 (標準エラー出力) に assign (>) しているとかなんとかどこかで読んだことがある気がするが、その…