Các kịch bản sau đây catenates nhiều (/ tuyệt đối tương đối) đường dẫn (BASEPATH) với một đường dẫn tương đối (subdir):
shopt -s extglob
SUBDIR="subdir"
for BASEPATH in ''/base base/ base// /base /base/ /base//; do
echo "BASEPATH = \"$BASEPATH\" --> ${BASEPATH%%+(/)}${BASEPATH:+/}$SUBDIR"
done
Kết quả trong số đó là:
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
các shopt -s extglob
chỉ cần thiết để cho phép BASEPATH kết thúc trên nhiều dấu gạch chéo (có thể là vô nghĩa). Nếu không mở rộng globing bạn chỉ có thể sử dụng:
echo ${BASEPATH%%/}${BASEPATH:+/}$SUBDIR
đó sẽ dẫn đến việc ít gọn gàng nhưng vẫn làm việc:
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
Nguồn
2017-01-03 22:34:14
bạn đã làm gì cố gắng cho đến nay? Ngoài ra, là một phần của câu hỏi của bạn về việc nhận dữ liệu nhập từ người dùng và phần khác về việc tạo đường dẫn? Hay chỉ là con đường? – Levon
Chỉ cần tạo đường dẫn. – Hakim