Mục tiêu:
Sau khi mở rộng lưu trữ a.zipbằng cách sử dụng lệnh unziptrên Ubuntu 12.10, gán tên của thư mục được a.zipmở rộng cho bashbiến v.
a.zip được giả định và đảm bảo mở rộng sang một thư mục, thay vì nhiều thư mục.
Thí dụ:
Nếu unzip a.zipmở rộng vào thư mục ./foo/, echo $vnên trả lại foo.
Môi trường của tôi:
GNU/Linux (kernel 3.5.0-25-generic)
Ubuntu 12.10
bash v4.2.37(1)-release
UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.
Cách giải quyết hiện tại tôi không hài lòng với: mở rộng thông qua unzip -d bar a.zipsau đó v=$(ls -1 bar)cho kết quả đúng, nhưng làm rối hệ thống tập tin.
-m1bậtgrepvà tôi không biết về việccutin đến cuối thông qua-fN-(bỏ qua số trường cuối cùng). Bạn đã dạy tôi một cái gì đó! Đối với điều này -> upvote! Bạn đã không sử dụng chỉ một công cụ (ví dụawk) bởi vì 1.grepvàcutphổ biến rộng rãi hơnawkvà 2. bạn có thấy những gì bạn đã viết "dễ đọc" hơn không? Tôi muốn nghe lý do của bạn, vì người ta có thể pha chế một lớp lót, như vậy: stackoverflow.com/questions/15776352 PS: bạn không cần dấu ngoặc kép, không chia tách từ bash trong thời gian gán biến.v=$(echo a b)giống nhưv="$(echo a b)"