Điểm:0

Đọc tệp từ thư mục đã giải nén - Linux

lá cờ ck

những gì tôi đang cố làm là đọc các tệp từ 4 thư mục đã giải nén khác nhau cho đến bây giờ không thành công, tôi đã viết kịch bản đó:

cho tập tin; làm
file_type cục bộ=$( file -i "$file")

trường hợp "$file_type" trong
    *application/x-bzip2*) echo "đã tìm thấy tệp bzip2";;
*application/gzip*) echo "đã tìm thấy tệp gzip";;
*application/zip*) echo "đã tìm thấy tệp zip";;
*application/x-xz*) echo "đã tìm thấy tệp xz";;
*application/x-compress*) echo "đã tìm thấy tệp nén";;
?) echo "${file} không thể giải nén";;


thoát hiểm

xong

không có Lỗi, nhưng cũng không có đầu ra khi tôi đang chạy nó.

cocomac avatar
lá cờ cn
Tại sao bạn cần xác định các loại nén khác nhau? Có vẻ như bạn có thể gặp [Sự cố XY](https://meta.stackexchange.com/q/66377).Nếu bạn chỉ cần giải nén chúng, hãy thực hiện `tar xf filename`, và `tar` đủ thông minh để tự động xác định định dạng và giải nén đúng cách mà bạn không cần phải cho nó biết định dạng của tệp là gì.
lá cờ hr
Làm thế nào chính xác là bạn đang chạy nó? ` cho tập tin; do` lặp qua *tham số vị trí* của tập lệnh - bạn có thực sự cung cấp bất kỳ thứ gì không?
Hagai Buachi avatar
lá cờ ck
@cocomac tôi cần cung cấp danh sách tên tệp (gunzip, bunzip2, giải nén, giải nén) tên tệp tar xf cũng không làm gì cả.
Hagai Buachi avatar
lá cờ ck
@steeldriver bạn có thể giải thích điều này không?
cocomac avatar
lá cờ cn
`tar xf filename` chắc chắn sẽ làm gì đó. Hãy thử chạy `tar xf filename` theo cách thủ công trong một thiết bị đầu cuối và xem nó có hoạt động không. Nếu không, thì `tar` của bạn đã bị hỏng và bạn nên sửa nó. Nếu nó hoạt động ở đó, thì có gì đó không ổn với tập lệnh của bạn, có lẽ đó là điều mà @steeldriver đã nói. Ngoài ra, hãy chạy tập lệnh của bạn thông qua [ShellCheck](https://www.shellcheck.net/). Nó sẽ tìm thấy bất kỳ lỗi hoặc sai lầm nào mà bạn đã bỏ lỡ.
Hagai Buachi avatar
lá cờ ck
@cocomac tôi đã chạy nó trong ShellCheck và không có gì sai, như tôi đã nói ở trên tar cũng không phản hồi
lá cờ hr
@HagaiBuachi nếu bạn đã chạy **chính xác những gì bạn đã đăng** trong shellcheck thì nó sẽ cho bạn biết rằng (1) nó không có "shebang" để xác định trình bao và (2) `local` chỉ hợp lệ trong một chức năng
Hagai Buachi avatar
lá cờ ck
@steeldriver vậy tôi nên làm gì để khắc phục?

Đă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.