Удалить косую черту в конце переменной - PullRequest
123 голосов
/ 04 декабря 2009

автоматическое завершение 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 ]

227 голосов
/ 04 декабря 2009

Используйте

target=${1%/}

A ссылка .

22 голосов
/ 04 декабря 2009
10 голосов
/ 13 января 2014

Я думаю, что лучшим решением для канонизации путей является realpath $path или опция -m, если она не существует Это решение автоматически удаляет ненужные слэши и добавляет pwd

3 голосов
/ 16 декабря 2010

Будьте осторожны, bash3 добавил в bash perl-подобное регулярное выражение. Упомянутое руководство охватывает это, а также официальное руководство в GNU , но не все ссылки делают.

Что я сделал?

Заменить 2.19/* на 2.19.

Решение

VER="2.19/foo-bar"
NEWVER=${VER%/*}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...