[A-00022]basenameの使い方
basenameコマンドの有効な利用方法についてまとめる。
今のところ思いついたのが「実行シェルファイル名と同じファイル名のログファイルを作成する」くらいだった。
まずはtest.shを作成。
#/bin/bash
FILE_NAME=`basename $0 .sh`
echo $FILE_NAME
LOG_FILE_NAME=$FILE_NAME.log
touch $LOG_FILE_NAME
cat <<EOF > $LOG_FILE_NAME
これはテストです。
これはテストです。
EOF
ファイルの中身を簡単に説明する。
basenameコマンドで実行ファイル名($0)を取得。取得する際には末尾の「.sh」を取り除いておく。
basenameコマンドの第二引数に[.sh]を指定すれば自動で除去してくれる。
念のためechoして確認。
次にtouchコマンドで、変数(LOG_FILE_NAME)に実行ファイル名に”.log”を結合してログファイルを作成する。
最後はヒアドキュメントでログファイルに適当な文字列を突っ込んでいる。
これを実行する下記のようになる。
anonymous-MacBook-Pro:$ ./test4.sh
test4
anonymous-MacBook-Pro:$ ls
test.sh test2.sh test3.sh test4.log test4.sh
anonymous-MacBook-Pro:$ cat test4.log
これはテストです。
これはテストです。
あまりシェル自体描かないので実用例を知らないがおそらく使うとしたらこういう使い方になると思う。
コメントを残す