我已经实现了聊天服务器客户端。我编写了以下shell脚本来动态获取服务器端口号:server.sh
javac -classpath。 com / chat / ChatConstants.java
javac -classpath。 com / chat / ChatServer.java
回显输入服务器端口号
读取$ 1
java com.chat.ChatServer $ 1
这是我试图将参数传递给的Java主要方法:
9
pppoe-Abrar
null
null
null
null
null
null
null
null
但是,打印的端口号始终是默认端口,即8888。当我按如下方式运行Java程序时
java com.chat.ChatServer 2727
正确获取了cmd行args,并将服务器端口设置为2727。
我似乎在shell脚本中做错了。我什至尝试通过引号将参数传递如下:
java com.chat.ChatServer“ $ 1”
命令提示符将立即关闭。
请帮助
答案 0 :(得分:1)
您的脚本应为:
read PORT
java com.chat.ChatServer $PORT
答案 1 :(得分:0)
$1
是一个特殊变量,它保存传递给shell脚本的第一个命令行参数。
您需要read
输入到另一个变量。
编辑:
只是一个旁注,您可以不使用echo
而使用read -p "Enter server port number" P
打印提示。