揮発性のメモ2

http://d.hatena.ne.jp/iww/

bashで変数にタブコードを入れる

a   b みたいな文字列を作りたい。

bashの制御コードの置換機能をつかう

$'\t' とかで、制御コードを置換できる

$ echo a$'\t'b
a       b

$ A=a$'\t'b
$ echo "$A"
a       b

$ A=$'a\tb'
$ echo "$A"
a       b

制御コードの置換を""で囲ってしまうと、そのまま出力されてしまうので注意すること

$ A="a$'\t'b"
$ echo "$A"
a$'\t'b

参考:テキストファイル内の制御コードを検索するには − @IT

echo -eを使う

echo -e で、\tとかの制御コードが利用できるようになる

$ echo -e "a\tb"
a       b

$ A=`echo -e "a\tb"`
$ echo "$A"
a       b

echoで出力するときは、ちゃんと""で囲わないと思ったとおりに出力しないので注意

$ echo -e a\tb
atb

$ A=`echo -e "a\tb"`
$ echo $A
a b

dashのechoは常に-eがついてるのでこれになる

入力時にCTRL+Vを使う

bashコマンドラインなら、CTRL+Vを入れるとつづけて制御コードを入力できる

       ↓ここでCTRL+Vを打ってタブキー
$ echo a    b
a       b

    ↓ここでCTRL+Vを打ってタブキー
$ A=a   b
$ echo "$A"
a       b

historyで見るとぼんやりするし、TeraTerm上からコピーできないし、スクリプトに使うときもなんだかわかりにくくなるので、決して積極的には使わないこと! ちょっとした裏技扱いで