[Shell] 絶対パスを取得する(関数形式)
Shellで相対パスを絶対パスに変換する際、関数として利用する場合のメモ
*冗長です
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# ------------------------------------------------------------ # ファイルの絶対パスを取得 # ------------------------------------------------------------ # ファイルが存在しなければエラーを吐いて終了 function Get_abspath(){ local filename=$1 local path=$(echo $(cd $(dirname ${filename}) && [ -e $(basename ${filename}) ] && echo $(pwd)/$(basename ${filename}))) if [ "${path}" = "" ]; then echo "Not found \"${filename}\"" 1>&2 kill -1 $$ # $()内ではexitシグナルの送信ができないのでkillで自分自身にシグナル1を送信 exit 1 fi echo ${path} } |
一応ファイルの存在を確かめることも可能です。
使い方はこんな感じ
1 |
abspath=$(Get_abspath ./temp.txt) |
コメントを残す