JAVA中$ 1的含义是什么?

时间:2010-08-21 22:05:25

标签: java jetty

这是一个shell脚本:

echo Starting Jarvis Program D.
ALICE_HOME=.
SERVLET_LIB=lib/servlet.jar
ALICE_LIB=lib/aliceserver.jar
JS_LIB=lib/js.jar

# Set SQL_LIB to the location of your database driver.
SQL_LIB=lib/mysql_comp.jar

# These are for Jetty; you will want to change these if you are using a different http server.
 HTTP_SERVER_LIBS=lib/org.mortbay.jetty.jar

 PROGRAMD_CLASSPATH=$SERVLET_LIB:$ALICE_LIB:$JS_LIB:$SQL_LIB:$HTTP_SERVER_LIBS
 java -classpath $PROGRAMD_CLASSPATH -Xms64m -Xmx128m org.alicebot.server.net.AliceServer $1

在最后一行:$ 1是什么意思?

3 个答案:

答案 0 :(得分:8)

它不是Java,它是shell脚本语言。 $1是命令行中提供的第一个参数。它告诉脚本将您提供的第一个命令行参数传递给java.exe。反过来,它是你调用main()的第一个参数。

如果您的main看起来像这样,并且您提供的值是“foo”,则输出将为“foo”:

public static void main(String [] args)
{
    for (String arg : args)
    {
        System.out.println(arg);
    }
}

答案 1 :(得分:2)

shell脚本中的

$1表示“传递给此shell脚本的参数编号1”。

例如,如果您有一个名为“foo.sh”的shell脚本,则包含以下内容:

#!/bin/sh
echo "$1"

并且您使用./foo.sh hello world调用它,然后hello是传递给脚本的第一个参数,将执行echo "hello"命令并将hello打印到屏幕上

答案 2 :(得分:0)

只是为了好奇,这里是shell脚本的整个代码环境,名为server.sh:

http://sourceforge.net/projects/charliebot/

可在此处找到更多信息:

# http://www.alicebot.org/resources/programd/readme.html
# http://www.noendpress.com/caleb/ALICE101_MacOSX/