![큰 숫자를 비교하는 중에 오류가 발생했습니다.](https://linux55.com/image/132501/%ED%81%B0%20%EC%88%AB%EC%9E%90%EB%A5%BC%20%EB%B9%84%EA%B5%90%ED%95%98%EB%8A%94%20%EC%A4%91%EC%97%90%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
이것을 사용해보십시오
#!/bin/bash
SIZE=$(redis-cli info | grep used_memory: | awk -F':' '{print $2}')
MAX=19000000000
if [ "$SIZE" -gt "$MAX" ]; then
echo 123
fi
하지만 항상 "Ganzzahliger Ausdruck erwartet"를 받으세요.
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}')
답변1
당신이 사용하는 숫자는 매우 큰 것 같습니다 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