shell脚本:如果数组值大于数字,则运行命令

时间:2016-02-07 21:13:18

标签: arrays shell

我有一个包含用户名的文件,用户每行发送计数邮件。例如(不知道有多少行):

info.txt>

500 example1
40 example2
20 example3
....
..
.

如果数字大于X,我想运行包含用户名的命令并对用户进行操作。

getArray() {
       users=() # Create array
       while IFS= read -r line # Read a line
      do
          users+=("$line") # Append line to the array
       done < "$1"
    }
    getArray "/root/.myscripts/spam1/info.txt"


   # i know this part is incorrect and need help here :
    if [ "${users[1$]}" -gt "50" ]

    then

echo "${users[2$] has sent ${users[1$]} emails"


fi

请帮助

由于

1 个答案:

答案 0 :(得分:0)

不知道您输入了多少行是没有理由使用数组。实际上,如果您假设输入是无限的(输入流)通常更有用,那么读入数组是不可能的。只需阅读每一行并在必要时采取措施:

#!/bin/sh
while read -r count user; do
  if test "$count" -gt 50; then   
    echo "$user has sent $count emails"
  fi   
done < /root/.myscripts/spam1/info.txt