Bash でスクリプト実行時に必ずそのファイルの場所に移動させたい
そんなときは下記を仕込んでおく。 #!/bin/bash BASEDIR=${0%/*} cd $BASEDIR
そんなときは下記を仕込んでおく。 #!/bin/bash BASEDIR=${0%/*} cd $BASEDIR
シェルでは $0 で実行したスクリプトファイルのパスが取れる。ここでスクリプト名だけを切り出したときはどうすればよいか。basename というコマンドを使うと切り出せる。また指定したサフィックスを取り除くことができる。 bash だとパターンマッチによる切り出しができる。 #!/bin/bash base=${0##*/} echo $base echo basename $0 echo ${base%.sh} echo basename $0 .sh を実行すると、 $ /home/toshi/shell/hoge.sh hoge.sh hoge.sh hoge hoge $ ./hoge.sh hoge.sh hoge.sh hoge hoge となる。 ※スクリプト名を切り出して何に使うのか。 ⇒例えば view と vi のように実行名によって動作を変えるときなんかに使います。