いつも忘れてしまうので、メモですヵキヵキ…φ(*゚ω゚´*)
シェルスクリプトを作成するときにconfigファイルとかログファイルとかシェルと同じ名前することが多いと思います。
シェルスクリプト名を取り出したいだけなら、シェルスクリプトの中で
basename $0
を入れてあげれば良いのですが、これだと.sh
付きで取れてしまいます。
sedで置換という手もありますが、もっと簡単な方法があります。
basename $0 .sh
これでシェルスクリプトの拡張子のみを削ったファイル名が取得できます。
実際に使割れる例(このままコピーしていただければ、使えます。)
# configファイルのファイルパスを取得
conf_file_name=
conf_dir_name=
conf_file_name=
basename $0 .sh
.confconf_dir_name=
dirname $0 | sed -e s/bin/config/g
echo $conf_dir_name/$conf_file_name
basename $0 .sh
で実行したシェルスクリプトの.shなしを取得し、その後ろに
.conf
を付与して感じになります。
ちなみにdirnameはsedで置換しました。
上の例を実行する上で大切なことがあります。
それは・・・
フルパスで実行してください。
例えば、
sh hoge.sh
と実行した場合、dirnameが.
となる為、うまく実行できなくなります。
シェルスクリプトに慣れていない人のハマりポイントでもあるので、
シェルを実行する時はフルパスで実行
これは覚えておきましょう!
新着情報
ブログランキングに参加しています。クリックして応援していただけると嬉しいです。
人気ブログランキング
にほんブログ村