揮発性のメモ2

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

bash

日付フォーマット出力

2012-10-03 16:33:58 みたいに出力する perl my ($S,$M,$H,$d,$m,$Y,$x) = localtime(); my $date = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $Y+1900,$m+1,$d,$H,$M,$S ); print "$date\n"; use POSIX qw(strftime); $date = strftime( "%Y-%m-%d %H:%M:…

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

ファイル名の分解

EZ-NET: シェルスクリプトでファイル名や拡張子名を取得する - Linux シェルスクリプト プログラミング に書いてあるとおりに実施 #!/bin/sh FILENAME=$1 DIRNAME=`dirname "$FILENAME"` EXTNAME=`echo ${FILENAME##*.} | tr a-z A-Z` FILENAME_WITHOUT_EXT=…

Linux用自己解凍実行ファイル

普通はパッケージにするから無用な技術だけど こういう構成にすればLinuxでも自己解凍するインストーラとかが作れる

dashにはブレース展開が無い

bashにはブレース展開がある $ cat brace.sh for i in {1..4}; do echo $i; done $ bash brace.sh 1 2 3 4 $ dash brace.sh {1..4} squeezeだかlennyの頃から/bin/shがdashになっているので、この罠にかかると死ぬ。

function: not found

#!/bin/dash set -e function hoge { echo hoge } hoge $ ./hoge.sh ./hoge.sh: 5: function: not founddashには function が無い。 なるほど。ふざけんな。 関数定義はbashでも動作するように hoge () { でおこなうこと。 あと、dashはecho文でエスケープシ…

CVSで指定したタグに含まれるファイルとバージョン一覧を表示

バージョン管理システム CVS を使う http://vox.nishimotz.com/cvs/taglist.txt これを改造して出力をちょっとコンパクトにする。 #!/bin/sh # tag の名前を引数で指定すると、そのファイル名で # 構成するファイルのバージョン一覧を出力する・改 if [ $# -…

ファイルから数字を読んで1足してまた書き戻す

echo $((`cat /tmp/hoge 2>/dev/null`+1)) > /tmp/hogeファイルが無いときは1を書く