Tôi gặp vấn đề thực sự lạ với/bin/bash và tập lệnh sử dụng printf để định dạng chuỗi./bin/bash printf không hoạt động với LANG khác hơn C
Kịch bản của tôi trông như thế này
rt=$(printf "%.3f" 13.234324245)
với sự khác biệt, mà tôi tính toán số 13,23 ... trên. Khi tôi sử dụng/usr/bin/zsh hoạt động tốt! Ngay cả/bin/sh có thể làm điều đó (nhưng nó không thể làm nếu công cụ ...) Vấn đề lớn nhất mà/bin/bash dường như không hiểu printf hoặc không có cách thức khác khi tôi không sử dụng LANG=C
.
My LANG Variable được thiết lập để de_AT.UTF-8
và sau đó tôi nhận được lỗi này:
/path/to/script: Zeile 12: printf: 13.234324245: Ungültige Zahl.
Vì vậy, nó chỉ đơn giản nói rằng số tôi đã cung cấp printf là không hợp lệ ...
Do i cần phải chạy printf theo một cách khác?
chỉnh sửa: Vấn đề có vẻ là trên việc tính toán số:
rt=$(printf "%.3f" $(echo "$res2 - $res1"|bc))
làm thế nào tôi có thể nói bc sử dụng một ,
thay vì .
?
Điều thú vị là –
nhưng sau đó, làm cách nào để làm điều đó khi phao ra khỏi bc? sed nó? D: – reox
Có lẽ điều dễ nhất trong trường hợp này là sử dụng giải pháp @ J-16 và buộc LANG = C. –