다음 스크립트는 상대 경로 (SUBDIR)로 여러 (상대 / 절대) 경로 (BASEPATH)를 연결합니다.
shopt -s extglob
SUBDIR="subdir"
for BASEPATH in '' / base base/ base// /base /base/ /base//; do
echo "BASEPATH = \"$BASEPATH\" --> ${BASEPATH%%+(/)}${BASEPATH:+/}$SUBDIR"
done
그 결과는 다음과 같습니다.
BASEPATH = "" --> subdir
BASEPATH = "/" --> /subdir
BASEPATH = "base" --> base/subdir
BASEPATH = "base/" --> base/subdir
BASEPATH = "base//" --> base/subdir
BASEPATH = "/base" --> /base/subdir
BASEPATH = "/base/" --> /base/subdir
BASEPATH = "/base//" --> /base/subdir
는 shopt -s extglob
BASEPATH은 (넌센스 아마 인) 여러 슬래시에 종료 할 수 있도록에만 필요합니다. 확장 된 글 로빙없이 다음을 사용할 수 있습니다.
echo ${BASEPATH%%/}${BASEPATH:+/}$SUBDIR
덜 깔끔하지만 여전히 작동합니다.
BASEPATH = "" --> subdir
BASEPATH = "/" --> /subdir
BASEPATH = "base" --> base/subdir
BASEPATH = "base/" --> base/subdir
BASEPATH = "base//" --> base//subdir
BASEPATH = "/base" --> /base/subdir
BASEPATH = "/base/" --> /base/subdir
BASEPATH = "/base//" --> /base//subdir