Câu trả lời:
case $x in *[!/]*/) x=${x%"${x##*[!/]}"};; esac
target=${DIR%/}
Sử dụng target=${1%/}
Xem điều này thay thế tham số của hướng dẫn kịch bản bash này để biết thêm.
Tôi nghĩ giải pháp tốt hơn để chuẩn hóa đường dẫn là realpath $path
hoặc với -m
tùy chọn nếu nó không tồn tại. Giải pháp này tự động loại bỏ các dấu gạch chéo không cần thiết và thêm pwd
readlink -f
dễ mang theo hơn một chút realpath
. Đối với các tùy chọn bổ sung / thay thế: linux.die.net/man/1/readlink
target=$(realpath -L --relative-base . $1)
Hãy cẩn thận, bash3 thêm regex tương tự perl vào bash. Hướng dẫn được đề cập bao gồm điều này cũng như hướng dẫn chính thức tại GNU , nhưng không phải tất cả các tài liệu tham khảo đều làm.
Thay thế 2.19/*
để được 2.19
.
VER="2.19/foo-bar"
NEWVER=${VER%/*}