Bash 最後の文字が`/`のとき`/`を取り除く

    >


最後の”/”を取り除きたい場合ってあると思います。例えばcpとかrsyncをする場合は、単純なディレクトリの指定ではなく、ディレクトリ+*(ワイルドカード)の指定が大きな意味を持ちます。

path/to/*としたいのに、
path/to//*となってしまう、

といった事態を避けることができますね。


func(){ [[ "$( echo "${1}" | getlastchar )" == "/" ]] && var="$( echo ${1} | chomplastchar )" || var="${1}" echo ${var} } chomplastchar(){ chomp | python3 -c "import json,sys;print(sys.stdin.read()[:-1])" } getlastchar(){ chomp | python3 -c "import json,sys;print(sys.stdin.read()[-1:])" } chomp () { perl -pe "chomp" }

https://yuis.xsrv.jp/images/ss/ShareX_ScreenShot_904a3a3c-7b8d-4068-9308-f280afea250c.png

yuis ASUS /mnt/c/pg$ func "dir/"
dir
yuis ASUS /mnt/c/pg$ func "dir"
dir


お困りですか?この記事で紹介していることをマンツーマンで指導、解説、代行します。まずはお気軽にお問い合わせください。


Close Menu