日期:2014-05-16  浏览次数:20644 次

Linux远程连接windows的shell脚本问题?
sshd服务端在windows上,然后在客户端Linux上通过ssh命令远程连接到windows,现在想写一个带参数的shell脚本,写出来了,可是有一点问题,请大家帮助下,
脚本名sshd.sh,内容:
auto_login_ssh () {
    expect -c "set timeout -1;
                spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};
                expect *assword:*;
                send -- $1\r;
                expect *>;
                send $3\r;
                interact;";
}

auto_login_ssh $*
外面命令行输入:./sshd.sh administrator administrator@192.168.56.1 dir
想法就是连接windows成功后,立即启动windows上的一个应用程序,比如简单的dir命令或打开一个word文档,
可是不行啊,我如果把脚本里的$3参数写成dir,这样在外面输入:./sshd.sh administrator administrator@192.168.56.1就可以成功,为什么啊?不能把命令当成参数传进去吗?请各位朋友给点建议,谢谢了! 
------解决方案--------------------
把参数一个一个赋进去就好了,${}会把第三个参数和后面的参数一起赋进去的