.concat无法读取空间

时间:2012-07-21 04:00:51

标签: java android linux

我在此代码中遇到问题

public void setTmbhUserFtp(View v) {
        Spinner spinner = (Spinner) findViewById(R.id.spinner);
        Server server = serverlist.get(spinner.getSelectedItemPosition() - 1);
        EditText EditAdduser = (EditText) findViewById(R.id.EditAdduser);
        EditText EditPassworduser = (EditText) findViewById(R.id.EditPassworduser);
        String sTextAdduser = EditAdduser.getText().toString();
        String sTextPassworduser = EditPassworduser.getText().toString();

        if (server != null && sTextAdduser.length() > 0
            && sTextPassworduser.length() > 0) {
        final String ADDUSER = "sh /home/add_user.sh".concat(sTextAdduser) .concat(sTextPassworduser);
        FtpConnect u = new FtpConnect();
        Command o = new Command(getResources().getText(R.string.adduser)
                .toString(), ADDUSER, server);
        u.setCommand(ADDUSER);

        pd = ProgressDialog.show(actual,
                getResources().getString(R.string.PleaseWait), o.getName());
        actualThreadCommand = o;
        Thread thread = new Thread(actual);
        thread.start();

    } else {
        Toast.makeText(getBaseContext(),
                getResources().getText(R.string.gagal), Toast.LENGTH_LONG)
                .show();
    }

}

该代码在linux中用于执行

sh /home/add_user.sh username password

但是当我从我的Android尝试用户名和密码是一个

所以代码就像这样

sh /home/add_user.sh usernamepassword

如果用户名是irfan,密码是irfan,则代码被检测

sh /home/add_user.sh irfanirfan

所以用户名是irfanirfan而且没有密码

代码add_user.sh是

useradd $1; echo -e "$2\n$2" | passwd $1

如何解决

final String ADDUSER = "sh /home/add_user.sh ".concat(sTextAdduser) .concat(sTextPassworduser);
<。>在.concat(sTextAdduser)之后必须是空格

所以在linux中会执行

sh /home/add_user.sh irfan irfan

3 个答案:

答案 0 :(得分:1)

通过这种方式,您可以解决问题:

final String ADDUSER = "sh /home/add_user.sh "+sTextAdduser+" "+sTextPassworduser;

答案 1 :(得分:0)

final String ADDUSER = "sh /home/add_user.sh ".concat(sTextAdduser)
.concat(" ")
.concat(sTextPassworduser);

答案 2 :(得分:0)

final String ADDUSER = "sh /home/add_user.sh "+sTextAdduser+"\\ "+sTextPassworduser;

在linux中的任何路径中使用backSlash后跟addSpace空格。