シェル - シェルスクリプト - ディレクトリ一覧
- 1. 概要
- 2. やりたいこと
- 3. ディレクトリ一覧
- 4. 最終形
1. 概要
これは、やりたいことを説明するところからはじめないと、むつかしい。
本ページは、下記のサイトを参考にさせていただきました。
「bashのfor文を使ってディレクトリ内のファイル一覧とディレクトリ一覧を出力」
「bash 変数に日付を入れる方法」
「【 basename 】コマンド――パス名からファイル名を取得する:Linux基本コマンドTips」
「command line - equivalent "echo on" for linux?」
2. やりたいこと
「Subversion」のリポジトリが、あるディレクトリに。
/パス/hogehoge
/パス/fugafuga
/パス/piyopiyo
てな具合にあります。
これを。
svnadmin --quiet dump hogehoge > YYYYMMDD-hogehoge.dump
てな感じで、ダンプするのですが、実際のリポジトリは、もう少し数が多くて、いちいち、手打ちするのは、面倒くさい。
シェルスクリプトで、できないかなぁ、と思った次第です。
3. ディレクトリ一覧
ディレクトリ一覧は、参考サイトのとおり。
#!/bin/sh
#
files="/パス/*"
for filepath in $files
do
if [ -d $filepath ]; then
echo $filepath
fi
done
てなことをすれば、うまいこととれました。
本日の日付を変数化する方法は、なんだ、本章の他のページに自分で書いていました。
すぐ忘れちゃうのね。バカだなぁ。
4. 最終形
最終形は、下記のようになりました。
#!/bin/sh
dir="/パス/"
today=`date "+%Y%m%d"`
cd $dir
files=$dir"*"
for filepath in $files
do
if [ -d $filepath ]; then
file=`basename $filepath`
set -x
svnadmin --quiet dump $file > $today-$file.dump
set +x
fi
done
14行目の実行中のコマンドを表示したくて。
14行目の前後に、「set -x」「set +x」をつけています。
なんか、「±」の意味を取り違えちゃいそうですが、「-x」で「echo on」、「+x」で「echo off」になるようです。
表示が。
+ svnadmin --quiet dump hogehoge
とプリフィックスのように「+」がつくのと、リダイレクト以降が表示されないのが「なんとも・・・」ですが、表示されないよりはまし。
|
|