从变量的末尾删除斜杠

时间:2009-12-04 17:20:11

标签: bash shell

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

4 个答案:

答案 0 :(得分:227)

使用

target=${1%/}

A reference

答案 1 :(得分:22)

使用target=${1%/}

有关详情,请参阅此the parameter substitution of this bash scripting guide

答案 2 :(得分:10)

如果不存在,我认为更好的canonize路径解决方案是realpath $path-m选项。 此解决方案自动删除不必要的斜杠并添加pwd

答案 3 :(得分:3)

小心,bash3添加了perl-like regex to bash。上面提到的指南以及official guide at GNU涵盖了这一点,但并非所有引用都包括在内。

我做了什么?

2.19/*替换为2.19

解决方案

VER="2.19/foo-bar"
NEWVER=${VER%/*}