web-dev-qa-db-ja.com

変数の末尾からスラッシュを削除します

bashの自動補完は、ディレクトリの最後に/を作成する方法を削除できますか?

ヒントをありがとう。

#!/bin/sh

target=$1

function backup(){
  date=`date "+%y%m%d_%H%M%S"`
  PWD=`pwd`
  path=$PWD/$target
  tar czf /tmp/$date$target.tar.gz $path
}

backup
126
Burntime

つかいます

target=${1%/}

A 参照

230
martin clayton

つかいます target=${1%/}

詳細については、この このbashスクリプトガイドのパラメーター置換 を参照してください。

22
Gregory Pakosz

パスを正規化するより良い解決策はrealpath $pathまたは-mオプション(存在しない場合)。このソリューションは、不要なスラッシュを自動的に削除し、pwdを追加します

11
amenzhinsky

注意してください、bash3はPerlに似た正規表現をbashに追加しました。言及されたガイドはこれと GNUの公式ガイド をカバーしていますが、すべての参考文献がカバーしているわけではありません。

私は何をしましたか?

代替2.19/* することが 2.19

解決

VER="2.19/foo-bar"
NEWVER=${VER%/*}
3
John P. Fisher