判定

シェルスクリプトを実行しているユーザをチェックし、rootでなければ終了させる。

「whoami」を使って、シェルスクリプトを実行しているユーザを取得する。

if [ `whoami` != 'root' ]
then
	echo 'This shellscript must be run by root.'
	exit
fi

ファイル

オーナー/パーミッションを一括変更する。

「find」を使って、条件に合致するファイル/ディレクトリを抽出し、「chmod」「chown」を実行する。

# directory配下のファイルのオーナーをroot:wheelに変更する。
find ${directory} -exec chown root:wheel {} \;

# directory配下のディレクトリのパーミッションを777に変更する。
find ${directory} -type d -exec chmod 700 {} \;

# directory配下のファイルのパーミッションを400に変更する。
find ${directory} -type f -exec chmod 400 {} \;

# directory配下の拡張子shのファイルのパーミッションを500に変更する。
find ${directory} -type f -name "*.sh" -exec chmod 500 {} \;

一行ずつ読む。

「read」を「while」を使って行数分呼び出す。

cat ${file} | while read line
do
	echo ${line}
done

重複した行を削除し、昇順にソートした上で、別のファイルに書き出す。

重複除去は「uniq」、ソートは「sort」、書き出しはリダイレクトを使う。

cat ${file_src} | uniq | sort | uniq > ${file_dst}

HTML/XML

HTMLファイルやXMLファイル内の連続するタグを1行1タグに整形する。

「sed」を使って「><」を置換する。

LF=$'\\\x0A'
cat ${file_src} | nkf -w | sed 's/></>'"$LF"'</g' > ${file_dst}

HTMLファイル内に記載されたパスやURLを抽出する。

「sed」を使って、「href=」以下の文字列を抽出する。

cat ${file_src} | sed -n 's/^.*href="\([^"]*\)".*$/\1/p' | uniq > ${file_dst}

日付/時間

日時や時刻を変数名に格納する。

「date」にフォーマット形式の引数を渡して整形する。

today=`/bin/date "+%Y%m%d"`
current_time=`/bin/date "+%H%M%S"`