Tôi đã tạo tập lệnh shell tìm kích thước của một thư mục, trả về ở định dạng có thể đọc được của con người (ví dụ: 802M hoặc 702K). Tôi muốn tính toán sự khác biệt giữa các kích thước.Chuỗi trừ (là số) trong tập lệnh shell
Dưới đây là shell script của tôi cho đến nay:
#!/bin/bash
current_remote_dir_size=789M
new_remote_dir_size=802M
new_size=`echo ${new_remote_dir_size} | grep -o [0-9]*`
current_size=`echo ${current_remote_dir_size} | grep -o [0-9]*`
echo "${new_size}-${current_size}"
Nhưng đầu ra của kịch bản chỉ là
-
Làm thế nào tôi có thể làm công việc trừ?
Hmm, tôi vẫn gặp lỗi. Tôi đã thay đổi dòng cuối cùng thành 'echo $ (($ {new_size} - $ {current_size}))', nhưng sau đó tôi nhận được một lỗi toán hạng. –
@mr_schlomo Nó hoạt động trên hệ thống của tôi. Xem bài viết đã chỉnh sửa của tôi. Đảm bảo 'grep' thực sự hoạt động như bạn mong đợi. –
Rất tiếc! Yep, 'grep' là vấn đề. Tôi chỉ chạy kịch bản của tôi trên máy chủ Linux của tôi và nó đã hoạt động! –