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

shell脚本中的命令问题?代码补充中。求各位大侠帮助??
脚本:
auto_login_ssh () {
    expect -c "set timeout -1;
                spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};
                expect *assword:*;
                send -- $1\r;  
                interact;";
}
auto_login_ssh 123456 root@192.168.56.1
连接成功了,我还想让它连接成功以后顺便直接启动192.168.56.1上的一个应用程序,比如打开一个txt文件就行,应该在哪里加什么代码啊?
找了一下午了,没找到好的方法,急求啊,谢谢各位高手了
------解决方案--------------------
尝试下ssh 192.168.56.1 -c "cat abc.txt"

------解决方案--------------------
spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};

直接在这个分号后面加你要执行的动作
------解决方案--------------------
引用:
spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};

直接在这个分号后面加你要执行的动作

恩,谢谢,我去试试
------解决方案--------------------
引用:
尝试下ssh 192.168.56.1 -c "cat abc.txt"

恩谢谢,去试试

------解决方案--------------------
如: 不要分号
expect -c "
    spawn ssh 10.10.10.10 "cp /a.txt b.txt \;mv b.txt bb.txt"
set timeout -1
    expect {
        \"*no)?\"  {
            send \"yes\r\"
            exp_continue
        }
        \"*assword:*\"  {
            send \"$password\r\"
            exp_continue
        }
    }
"
------解决方案--------------------
引用:
引用:spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};

直接在这个分号后面加你要执行的动作
恩,谢谢,我去试试

貌似不行啊,我加的动作是:dir命令,
报的错是:invalid command name "dir"
    while executing
"dir"

------解决方案--------------------
引用:
引用:引用:spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};

直接在这个分号后面加你要执行的动作
恩,谢谢,我去试试
貌似不行啊,我加的动作是:dir命令,
报的错是:invalid command name "dir"
 ……

去掉分号试试
------解决方案--------------------
引用:
引用:引用:引用:spawn -noecho ssh -o StrictHostKeyChecking=no $2 ${@:3};

直接在这个分号后面加你要执行的动作
恩,谢谢,我去试试