Mục tiêu:
Sau khi mở rộng lưu trữ a.zip
bằng cách sử dụng lệnh unzip
trên Ubuntu 12.10
, gán tên của thư mục được a.zip
mở rộng cho bash
biế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.zip
mở rộng vào thư mục ./foo/
, echo $v
nê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.zip
sau đó v=$(ls -1 bar)
cho kết quả đúng, nhưng làm rối hệ thống tập tin.
-m1
bậtgrep
và tôi không biết về việccut
in đế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.grep
vàcut
phổ biến rộng rãi hơnawk
và 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)"