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
답변
답변
답변
경로를 정식화하는 더 나은 솔루션은 존재하지 않는 경우 realpath $path
또는 -m
옵션으로 생각 합니다. 이 솔루션은 불필요한 슬래시를 자동으로 제거하고 암호를 추가합니다
답변
bash3은 perl-similar 정규식을 bash에 추가했습니다. 언급 된 가이드는 GNU 공식 가이드 뿐만 아니라이 가이드도 다루지 만 모든 참조가 아닙니다.
내가 뭘 한거지?
대체 2.19/*
할 2.19
.
해결책
VER="2.19/foo-bar"
NEWVER=${VER%/*}