如何使用java在shell脚本中传递用户名和密码

如何使用java在shell脚本中传递用户名和密码,java,shell,Java,Shell,我有一个shell脚本。现在我想用java在这个脚本中传递NAME和pass。然后我想使用java执行它。下面我在这里写了我的shell脚本和java代码 请帮帮我 #/bin/bash #创建ftp用户、创建文件夹和设置权限 #用法:./create_ftp_user.sh[用户名]“[密码]” # NAME=bimal 通过=双马耳 echo“用法:创建\u ftp\u user.sh[用户名][密码]” #检查输入参数 如果[-z“$NAME”];然后 echo“错误:未设置用户名” 出口

我有一个shell脚本。现在我想用java在这个脚本中传递
NAME
pass
。然后我想使用
java
执行它。下面我在这里写了我的
shell
脚本和java代码

请帮帮我

#/bin/bash
#创建ftp用户、创建文件夹和设置权限
#用法:./create_ftp_user.sh[用户名]“[密码]”
#
NAME=bimal
通过=双马耳
echo“用法:创建\u ftp\u user.sh[用户名][密码]”
#检查输入参数
如果[-z“$NAME”];然后
echo“错误:未设置用户名”
出口
fi
如果[-z“$PASS”];然后
echo“错误:未设置密码”
出口
fi
#创建系统用户
echo“创建用户名:$NAME”
回显“带密码:$PASS”
useradd-p`opensslpasswd-1$PASS`-m$NAME-g ftpaccess-s/usr/sbin/nologin
#保存到用户日志
echo“user:$NAME,pass:$pass”>>新的用户列表
#将用户添加到ftp守护程序列表
echo“$NAME”>>/etc/vsftpd/chroot\u列表
#创建用户ftp目录
mkdir/var/ftpupload/$NAME
#设定所有权
chown$NAME:/var/ftpupload/$NAME
#设置权限
chmod 0777/var/ftpupload/$NAME
#重新启动vsftp守护程序
#/etc/init.d/vsftpd重新启动
/*
*要更改此许可证标题,请在“项目属性”中选择“许可证标题”。
*要更改此模板文件,请选择工具|模板
*然后在编辑器中打开模板。
*/
包测试脚本;
/**
*
*@作者迪帕克
*/
导入java.io.IOException;
导入org.apache.commons.exec.CommandLine;
导入org.apache.commons.exec.DefaultExecutor;
导入org.apache.commons.exec.ExecuteException;
公共类测试脚本{
内在价值;
字符串sCommandString;
公共void运行脚本(字符串命令){
sCommandString=命令;
CommandLine oCmdLine=CommandLine.parse(sCommandString);
DefaultExecutor oDefaultExecutor=新的DefaultExecutor();
oDefaultExecutor.setExitValue(0);
试一试{
iExitValue=oDefaultExecutor.execute(oCmdLine);
}捕获(执行异常e){
//TODO自动生成的捕捉块
System.err.println(“执行失败”);
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
System.err.println(“权限被拒绝”);
e、 printStackTrace();
}
}
公共静态void main(字符串参数[]){
TestScript TestScript=新的TestScript();
runScript(“gksudosh/home/deepak/Desktop/ftpusers.sh”);
}
}

命令行可以用来设置shell参数:

CommandLine oCmdLine = new CommandLine(sCommandString);
oCmdLine.addArgument("bimal");
oCmdLine.addArgument("bimalPassword");
您可以参考文档页面上的各种选项

完成后,参数将在shell脚本中作为$1和$2位置shell参数提供:


这里的问题是如何将用户名和密码作为参数从调用它的java脚本传递给shell脚本?@Etan Reisner,是的..你不是在硬编码你的值吗
NAME=bimal PASS=bimal
Simple我编写了shell脚本并用java代码执行。。现在我想在shell脚本中使用java传递用户名和密码,然后使用java执行。我不明白。@EtanReisner Done:-)。
NAME=$1
PASS=$2