Điểm:1

Tạo thư mục khi tên có "/" và " ' "

lá cờ in
Cas

Tôi đang xây dựng đường dẫn tệp (và mkdir-ing chúng) dựa trên các biến:

mkdir "$root_folder/$title ($year)"

Tôi đã gặp một tình huống trong đó $title là 11/9: Bên trong Phòng Chiến tranh của Tổng thống. Các / là một vấn đề vì mkdir sẽ hiểu nó là một đường dẫn thư mục. Vì vậy, tôi muốn thay thế tất cả / với \/ để mkdir hiểu nó theo nghĩa đen thay vì nghĩ đó là một con đường. Các ' trong tên cũng đưa ra vấn đề. Vì vậy, tôi cũng muốn thay thế tất cả ' với \' nhưng điều này khó hơn tôi nghĩ.

Mục tiêu cuối cùng của tôi là tạo các thư mục sao cho chúng /' được hiểu theo nghĩa đen. Một số điều tôi đã thử:

title=$(echo "$title" | sed -e "s|'|$(echo "\")\'|g")
${title/\//\/}
#---
title=$(echo "$title" | sed -e "s|'|$(echo "\")\'|g" -e "s|/|\/|g")
$title
#---
mkdir "$root_folder/'$title ($year)'"
Điểm:10
lá cờ cn

Dấu ngoặc đơn hoặc dấu ngoặc kép sẽ không gây ra vấn đề gì miễn là bạn luôn luôn trích dẫn đúng các biến.

$ title=$(mèo << END_TITLE
Đây "là một tiêu đề" với 'hai loại dấu ngoặc kép'
END_TITLE
)

$ tuyên bố -p tiêu đề
khai báo -- title="Đây \"là tiêu đề\" với 'hai loại trích dẫn'"

$ mkdir "$title" # không cần cố ép thêm dấu ngoặc kép ở đây

$ tiếng vang $?
0

tên tập tin có thể không chứa một / nhân vật, bất kể bạn cố gắng thế nào để thoát khỏi nó. Dấu gạch chéo là dấu phân cách thư mục. Bạn sẽ phải thay thế một ký tự khác. Giả sử bạn chọn -:

mkdir "$root_folder/${title//\//-} ($year)"

Điều đó sử dụng bash Mở rộng tham số Shell thay vì gọi ra sed.

Jeff Schaller avatar
lá cờ ru
Một tùy chọn khác có thể là giả mạo nó bằng unicode [dấu gạch chéo phân số U+2044](https://www.compart.com/en/unicode/U+2044) hoặc [dấu gạch chéo phân số U+2215](https://www .compart.com/en/unicode/U+2215)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.