리눅스 스크립트 랜덤 설정 및 배열 사용법
개인경비를 하는데.. 매번 금액에 맞춰서 사람 이름을 입력해야 한다.
여간 번거러운게 아니다
그래서 만들었다.
100프로 완벽하지는 않지만, 그때그때 데이터가 쌓이면 수정하면 된다.
일단 자주 만나는 사람 이름을 names 변수에 넣어두고
랜덤 함수를 이용해서 사용 금액에 따라 인원을 넣어주는 스크립트이다.
예를 들어 5천원 미만이면 사용자 1명, 1만원~1만원5천원 이하면 2명
1만 5천~ 2만원 이하면 3명 2만원 이상이면 4명을 랜덤하게 사람을 나열해 준다.
이것만으로도... 노가다를 확실히 줄여 줄 수 있다...
과연 이거를 사용 하는 사람이 있을까??
#!/bin/bash
names=("user1" " user12" " user13" " user14" " user15" " user16" " user17" " user18" " user19" " user20" " user21" )
# 함수: 금액에 따라 사람 매핑
while IFS= read -r num; do
if [ "$num" -lt 5000 ]; then
count=0
elif [ "$num" -ge 5000 ] && [ "$num" -lt 10000 ]; then
count=1
elif [ "$num" -ge 10000 ] && [ "$num" -le 15000 ]; then
count=2
elif [ "$num" -gt 15000 ] && [ "$num" -lt 20000 ]; then
count=3
else
count=4
fi
start_index=0 # 시작 인덱스
for ((i=0; i<count; i++)); do
index=$((start_index + i))
random_index=$((RANDOM % ${#names[@]}))
temp="${names[$index]}"
names[$index]="${names[$random_index]}"
names[$random_index]="$temp"
done
result=""
for ((i=start_index; i<start_index+count; i++)); do
result+="${names[$i]}, "
done
echo "$num , "내이름", ${result%,*}"|cut -d"," -f1,2,3,4,5 # 출력: 숫자와 해당하는 이름들 (콤마 뒤에 공백이 있어서 제거)
done </root/num