shell脚本的编写

shell脚本的编写,shell,expect,csh,Shell,Expect,Csh,最近,我参与了使用CSHShell在SunOS上编写shell脚本的工作。我将有多个查询,但首先短程序不起作用 [username]% expect - << EOF Spawn telnet 74.125.71.103 expect "Password:" send "google\r" EOF 请告知 此脚本应以以下方式运行: 远程发送IP并使用现有的passwd(在脚本中明确给出) 在telnet之后,它显示菜单选项 MB站 钢筋混凝土 ODU 美联社 苏

最近,我参与了使用CSHShell在SunOS上编写shell脚本的工作。我将有多个查询,但首先短程序不起作用

[username]% expect - << EOF  
Spawn telnet 74.125.71.103  
expect "Password:"  
send "google\r"  
EOF 
请告知

此脚本应以以下方式运行:

  • 远程发送IP并使用现有的passwd(在脚本中明确给出)
  • 在telnet之后,它显示菜单选项
  • MB站
  • 钢筋混凝土
  • ODU
  • 美联社
  • 退出

    类型1//“MB站”菜单选项将打开,即
  • 1-显示
    2-单元控制

    类型2//UC菜单选项将打开,即

    1-更改密码
    2-重置

    类型1//将打开更改密码菜单选项,即

    1-更改电脑密码
    2-更改LU密码
    3-更改管理员密码

    键入3//以更改管理员密码

    MB站点-更改管理员密码
    输入新密码:XYZ Enter
    重新输入密码:XYZ enter

    接受新密码

    3次退出//退出telnet

    1.MB电台
    2.RC
    3.ODU
    4.AP
    5.SU
    6.出口

    键入6//退出
    出口[Y/N]Y

    与主机的连接丢失


    然后移动到具有不同IP的步骤。IP值将由用户在提示下执行脚本时一次性给出,例如../pass change IPs.txt

    未找到
    事件消息暗示您正在尝试进行某种历史替换。这通常涉及
    字符。你用
    键入了什么吗某个点上的字符

    expect:Command not found
    的意思就是:shell无法找到
    expect
    命令。安装了吗?如果没有,如果可以的话,您应该安装它,或者请系统管理员为您安装它,或者,如果安装失败,请在您的主目录下构建并安装它

    一旦你解决了这个问题,就会有一个名为
    spawn
    的expect命令,它是区分大小写的<代码>生成
    将无法识别


    如果您特别询问如何在不使用
    expect
    的情况下完成上述操作,请更新您的问题以明确说明这一点。

    我在下面有一个工作脚本,您会遇到错误,因为我相信您正在尝试使用某些sh或其他命令运行脚本。尝试将其作为./script运行。我使用下面的示例脚本进行文件传输,但我主要通过ssh来回交换密钥,这是一次性活动。 #!/usr/bin/expect-f 设置超时130 “生成ssh”idk@server.com" 应为“密码”: 发送“pass@1234\r“ 期望“$” 发送“sh/home/nathalok/HTML/run.sh\r” 期望“$”
    发送“exit\r”

    ya,我在shell开始时做过:“#!/bin/csh”作为Shebang…这应该是个问题吗?是的,似乎“Expect没有安装。那么如果我必须在SUnOS上编写一个脚本来调用远程登录(比如telnet),这怎么可能?请你在没有期望的情况下为我重新定义它好吗?@Ashish:不,shebang中的
    没有调用历史机制。很难说是什么引起的。你应该能够安装
    expect
    。我不太明白你在尝试做什么,所以无法提出替代方案。试着告诉我们你在尝试什么正在初始化以完成而不仅仅是您尝试的不起作用的操作。脚本将要将10台计算机的passwd从现有passwd(对所有计算机通用)更改为新passwd(对所有计算机同样应该相同)。有人能告诉我设计时可以准备什么样的shell脚本吗?@ABeri:解决我提出的问题是一个好的开始。你是否键入了
    字符(除了
    !/bin/csh中的字符),可能是您密码的一部分?您的系统上是否安装了
    expect
    ?问题出现在第一句:
    与csh shell一起
    。不要用于严肃的编程。忽略格式,所有代码都是单行的
    /bin/csh: Event not found  
    [username]% expect: Command not found