-1

このコードに問題があります

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から試してみると、ユーザー名とパスワードは1つになっています

コードは次のようになります

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
4

3 に答える 3

1

このようにして、問題を解決できます。

final String ADDUSER = "sh /home/add_user.sh "+sTextAdduser+" "+sTextPassworduser;
于 2012-07-21T04:46:15.207 に答える
0
final String ADDUSER = "sh /home/add_user.sh ".concat(sTextAdduser)
.concat(" ")
.concat(sTextPassworduser);
于 2012-07-21T04:47:33.030 に答える
0
final String ADDUSER = "sh /home/add_user.sh "+sTextAdduser+"\\ "+sTextPassworduser;

Linuxの任意のパスで、バックスラッシュの後にスペースを使用してスペースを追加します。

于 2012-07-21T04:51:02.880 に答える