読者です 読者をやめる 読者になる 読者になる

漆黒な技術メモ

管理人が必要に応じて自分のメモを好き勝手に投下するたまり場的ブログ

【ちょっと技術的なことAdventCalender】自分がよく忘れがちなシェルスクリプトの文法&定型句まとめ

この記事はちょっと技術的なことAdventCalenderの13日目です。

このブログでもシェル関係のお話を取り上げることがそこそこ多いことからもわかるに、管理人はサーバ管理に研究にと、比較的多くの機械でシェルスクリプトを書いています。
が、シェルスクリプト歴は正直1年にも満たず、まだまだいろいろ覚えきれていないことが多い駆け出しシェルエンジニアです。
そこで今回は、「自分がよく使うにも関わらずよく忘れがちなシェルスクリプトの文法&定型句」をまとめてここに書いておきたいと思います。

現在時刻を任意のフォーマットで取得

どちらかというとdateコマンドの使い方ですね…

#!/bin/sh
echo `date '+%Y/%m/%d %H:%M:%S'` #2016/12/13 12:00:54

任意のコマンドの引数に変数を入れて実行、結果を変数へ

#!/bin/sh
var="value"
ret=`command ${var}

ファイルの絶対パスを分割し、ファイル名、ディレクトリ名、最下部のディレクトリ名だけ抽出する

fullPath="/home/user/document/file.txt"

fileName=`basename ${fullPath}` # => file.txt
dirName=`dirname ${fullPath}` # => /home/user/document
lastDirName=`${dirName%/*}` # ==> document

10回ループ

#!/bin/sh
for i in `seq 1 10`
do
    echo "$i times"
done

コマンドライン引数からファイル名を参照し、1行ずつ処理

#!/bin/sh
filename=$1
cat $filename | while read line
do
    ehco $line
done

今日はここまで