shell

sudoを使用時の環境変数PATHの設定

node.jsをインストール・設定している時に気がついたのですが、いつのころからか、sudoを使用する時の環境変数PATHが引き継がれないようです。 調べてみると、いくつかの対応方法があるようです。 aliasで対応する方法 alias sudo="sudo env PATH=$PATH" /et…

aliasと引数

基本的なbashの話。bashは、aliasに引数を持たすことはできない。変わりにfunctionを使う。 function f(){ for i in `seq 1 $1`;do echo $i done }使い方は、こんな感じ。 $ f 5 1 2 3 4 5このfunctionを.bashrcなり何なりに記述しておけば、いつでも使える…

shellで日付比較

shellばかりいじっているから、最近、shellネタばかりです。shell上での日付比較は、秒に置き換えてやると、手っ取り早いです。 # 0 : 同一日時 # 1 : $1 の方が新しい日付 # 2 : $2 の方が新しい日付 function datecheck() { dt1=`date -d "$1" '+%s'` dt2=…

kill の「終了しました」のメッセージが邪魔

kill コマンドを発行する時の「終了しました」が非常に邪魔だったので、消す方法がないか調べていたら、これで簡単に消せた。 pid=`sh -c 'hoge & echo $!'` kill $pid

evalを使ったshell functionの戻り値の設定方法

これは便利な使い方と思ったので、メモshell 内の function で、文字列は返せません。テクニックとして、echoを使ったり、shell変数とかを使って橋渡したりするのですが、いつもスマートじゃないと思っていました。そんなとき、evalを使用して文字列を返す方…

ディレクトリ名から、ファイル名、および拡張子を取得するshell

いつもすぐ忘れてしまうのでメモということで。 $cat test.sh #!/bin/sh fpath=/var/www/html/index.html bname=${fpath##*/} fname=${bname%.*} ename=${bname##*.} echo $fname.$ename実行結果 $ ./test.sh index.html