我的bash脚本使用我的java代码有什么问题?

时间:2012-11-10 20:41:39

标签: bash

我正在编写一个简单的java和bash程序,但它不起作用。让我知道哪里出错了。

击:

    for i in [1..100]; do 
         echo $i
         java prob2 $i 
    done

Java:

import java.io.*;

public class prob2
{
    public static void main( String[] args )
    {
            int l = args.length;
            if ( l == 1 )
            {
                    int num = Integer.parseInt(args[0]);
                    while ( num != 0 && num != 1)
                            num = num - 2;
                    if ( num == 0 )
                            System.out.println("Even");
                    else if ( num == 1 )
                            System.out.println("Odd");
            }
    }
}

我得到的错误是:

  

线程“main”中的异常java.lang.NumberFormatException:对于java.lang.Integer.parseInt中java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)的输入字符串:“[1..100]” (Integer.java:492)在prob2.main的java.lang.Integer.parseInt(Integer.java:527)中(prob2.java:10)

2 个答案:

答案 0 :(得分:4)

这不是你怎么做bash循环。试试这个:

for i in `seq 1 100`; do 
     echo $i
     java prob2 $i 
done

顺便说一句,用于确定数字是奇数还是偶数的更快的算法是将其取模2:

if (num % 2 == 0) {
    System.out.println("Even");
} else {
    System.out.println("Odd");
}

答案 1 :(得分:4)

你必须使用花括号,而不是数组括号:

 for i in {1..100}; do 
         echo $i
         java prob2 $i 
    done