Corredor

ウェブ、プログラミングの勉強メモ。

Mac の ls コマンドは --color オプションではなく -G オプションで色付けする

Mac の OS は BSD 系なので、ls コマンドで色付けをするオプションは --color オプションではなく、-G オプションになるみたい。

# Mac のターミナルでは以下は使えない
$ ls --color=auto

# Mac ではこうやる
$ ls -G

で、この ls -G コマンドでの配色の変更方法は、以下のサイトで紹介されている。

自分の環境では、以下のようにすると、文字色が明るくなって見やすくなった。以下の設定を ~/.bash_profile にでも書いておく。

export LSCOLORS=gxfxcxdxbxegedabagacad

Mac Fan 2017年6月号 [雑誌]

Mac Fan 2017年6月号 [雑誌]

Git のリモートブランチを削除する

Web制作者のためのGitHubの教科書 チームの効率を最大化する共同開発ツール Web制作者のための教科書シリーズ

Web制作者のためのGitHubの教科書 チームの効率を最大化する共同開発ツール Web制作者のための教科書シリーズ

Git で、マージが終わったブランチをリモートから削除する方法。

# 削除したいブランチ名「branch」を指定する
$ git push origin :branch

この「コロン」でなぜ削除できるのかは以下の記事で紹介した。

neos21.hatenablog.com

ブランチ一覧に削除したブランチが残っている

ブランチを削除したのに、git branch -a で削除したリモートブランチが残っている場合は、以下のようにして削除する。

# リモートブランチは削除したが、ローカルに参照が残っているブランチを表示する
$ git remote prune --dry-run origin

# 削除したリモートブランチのローカル参照を削除する
$ git remote prune origin

alias で echo する際のシングルクォートのエスケープ方法

仕事に使えるLinuxシェルスクリプト~bashで作る実用サンプル41

仕事に使えるLinuxシェルスクリプト~bashで作る実用サンプル41

alias コマンドで、echo コマンドのエイリアスを定義しようとしたのだが、echo 内にシングルクォートが書きたかった。

以前紹介したエスケープ方法でエスケープすればいいやと思ったのだが、alias コマンドはエイリアスにしたいコマンドをシングルクォートで囲む。つまり、単純にシングルクォートだけをエスケープしようと思うと、alias コマンドを途中で終えるようなことになってしまうのだ。

これを何とかする方法を導くまでの道のり。


まず、alias 抜きに普通に echo する場合は、シングルクォートは \' とエスケープすれば書ける。

次に、alias 内で単純にシングルクォートを書きたい場合は、'\'' と書く。' で文を一度終え、\' でクォートを書き、' で後続の文を再開するのだ。

では、alias で定義している echo コマンド内に含まれる文字列として、シングルクォートを正しく認識させるようにするにはどうしたらいいか。

すなわち、シングルクォートをエスケープするための「\」と、シングルクォート自体「'」を両方書いてやらないと、echo 文にシングルクォートを含めた alias を作れないので、「\'\''」と書くことで、echo 用の「\'」を表現するのだ。

# ということでこうなる。
alias grephelp='echo grep -r \'\''HOGE\'\'' ./'

これで、

$ grephelp
grep -r 'HOGE' ./

このような、grep の使い方のヘルプを表示させるエイリアスが作れた (笑)。