Awk
比較大數字時出錯
試圖使用這個
#!/bin/bash SIZE=$(redis-cli info | grep used_memory: | awk -F':' '{print $2}') MAX=19000000000 if [ "$SIZE" -gt "$MAX" ]; then echo 123 fi
但總是得到:“預期的整數表達式”
當我回顯 SIZE 時,我得到一個像 2384934 這樣的值 - 我不必/可以轉換一個值,或者我可以/可以嗎?
redis-cli 資訊的輸出:
# Memory used_memory:812136 used_memory_human:793.10K used_memory_rss:6893568 used_memory_rss_human:6.57M used_memory_peak:329911472 used_memory_peak_human:314.63M total_system_memory:16760336384 total_system_memory_human:15.61G used_memory_lua:37888 used_memory_lua_human:37.00K maxmemory:0 maxmemory_human:0B maxmemory_policy:noeviction mem_fragmentation_ratio:8.49 mem_allocator:jemalloc-3.6.0
編輯:我發現了錯誤 - 我在 awk 命令中使用了 print - 沒有它它可以工作。
SIZE=$(redis-cli info | grep used_memory: | awk -F':' '{$2}')
您使用的數字似乎非常大
bash
。您可以嘗試以下方法:#!/bin/bash SIZE=$(redis-cli info | awk -F':' '$1=="used_memory" {print int($2/1000)}') MAX=19000000 if [ "$SIZE" -gt "$MAX" ]; then echo 123 fi