忍者ブログ
日々の研究生活のメモ書きなど

きちんとexitしないとためか、historyにコマンドのログが残らないことがある
それなら自分で作ってみようと思って、簡単なシェルスクリプトを書いてみた
#!/bin/sh

### makelog ###
# log command and time of command


OUTPUT=/Users/hoge/command_log.txt


date +%m%d-%H%M.%S >> ${OUTPUT}
echo "${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11}" >> ${OUTPUT}
echo "" >> ${OUTPUT}


${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11}


date +%m%d-%H%M.%S >> ${OUTPUT}
echo "${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9} ${10} ${11}" >> ${OUTPUT}
echo "" >> ${OUTPUT}


こんな感じか?

${1}…${11]の数はお好みでもっと増やしてもいい
「シェルスクリプトの引数すべて」を取る変数とかあれば便利だなーと思ったり



あと上のとは関係なく、以前から
alias today date +%m%d-%H%M.%S
というのをaliasに登録している
これがたまーに便利。

けどこれからは自分の中で、このmakelogの時代の台頭ですな


################################################


とここまで書いてから、シェルスクリプトのすべての引数を表す変数がないか調べてみたら見つかった・・・・
ということでさらに短くなって

#!/bin/sh

### makelog ###
# log command and time of command


OUTPUT=/Users/hoge/command_log.txt


date +%m%d-%H%M.%S >> ${OUTPUT}
echo "$*" >> ${OUTPUT}
echo "" >> ${OUTPUT}

$*

date +%m%d-%H%M.%S >> ${OUTPUT}
echo "$*" >> ${OUTPUT}
echo "" >> ${OUTPUT}





さらにこのあと出力先を隠しファイル(.から始まる)にしたり、startとendがわかるように変更したり、改良が加えられたとさ・・・









PR
プロフィール
HN:coffee
職業:物理屋(自称)
趣味:映画鑑賞
自己紹介:
#include <stdio.h>
#include "MyProfile.h"

#define TWITTER coffee_pote

#define WISH_LIST
amazonのほしい物リスト
#ifdef RICH_FLAG
// ↑いつも支援いただきありがとうございます m(_ _)m
#endif


int main(void){

printf("\n");
printf("D論・・・? あぁそんな子もいましたね(執筆中)\n");
printf("\n");
printf("猿でもわかるgnuplot を執筆中(こっちの執筆は半年以上何も進んでいない・・・・)\n");
/* 最終更新 2017/07/19 */
return 0;

}
カウンター
ブログ内検索
ツイートするボタン
Flickr

Template "simple02" by Emile*Emilie
忍者ブログ [PR]