[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
これはテストです。
これはテストです。

あまりシェル自体描かないので実用例を知らないがおそらく使うとしたらこういう使い方になると思う。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*