結果だけでなく過程も見てください

日々の奮闘を綴る日記です。

生理的に文法が嫌いなシェルスクリプト

個人的にですが、文法が大嫌いな上にWindows/UNIXで別々のスクリプトを書かなくては
ならないのが非常に馬鹿馬鹿しい。個人ユースならPerlPythonでいいじゃないか。

という考えだったので今まで徹底的に避けて来ましたが、
どうしても使わなくてはならない状況もあり得る…
ということで、最低限のリファレンスだけ作っておこうと思います。

bashではなく、Bourne Shellを使うことにします。適宜追加です。

すでにファイルが存在していたら数字をずらしてバックアップする
#!/bin/sh

if [ $# -ne 2 ]
then
  echo "Usage:$0 <srcfile> <dstbackupfile>" 1>&2
  exit 1
fi


function file_backup() {
  srcfile=$1
  dstfile=$2

  i=0
  while [ $i -le 100000 ]
  do
    if [ ! -e ${dstfile}.${i} ]
    then
      cp -p ${srcfile} ${dstfile}.${i}

      if [ $? -eq 0 ]
      then
        echo "Copying file succeeded(${dstfile}.${i})."
        break
      else
        echo "Copying file failed(${dstfile}.${i})."
      fi
    fi
    i=`expr $i + 1`
  done
}


file_backup $1 $2

echo "done."
exit 0
プライバシーポリシー お問い合わせ