シェルで実行にかかった実時間を表示
timeだと実時間が取れなかったのでさっくりと。
hogehogeの行を処理と書き換えで実行時かかった実時間を表示する。
START=`date +"%s"` ## hogehoge END=`date +"%s"` TOTAL_SEC=`expr $END - $START` SEC=`expr $TOTAL_SEC % 60` SEC=`printf %02d $SEC` MIN=`expr $TOTAL_SEC / 60` MIN=${MIN%.*} HOUR=`expr $MIN / 60` HOUR=${HOUR%.*} HOUR=`printf %02d $HOUR` MIN=`expr $MIN % 60` MIN=`printf %02d $MIN` echo "time: $HOUR:$MIN:$SEC"
sudo -u hogehogeでユーザーを変えても環境変数は元のまま
知らずに余計な時間を使った。
例えばHOMEなんかも変わらない。shファイルとかなら内部で強制的にHOME書き換えてやればOKだった。
phpなどからシェルスクリプトを実行するとコマンドが無いと言われる場合がある
PATHが通らないらしい。
shの中で明示的にPATHをexportするといい。
export PATH=/usr/local/bin:/usr/bin:/bin
シェルで標準エラー取得
コマンドの最後に2>&1つければ取得できる