Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops Fsck期望脚本_Loops_Scripting_Expect_Mount_Fsck - Fatal编程技术网

Loops Fsck期望脚本

Loops Fsck期望脚本,loops,scripting,expect,mount,fsck,Loops,Scripting,Expect,Mount,Fsck,因此,正如标题所示,我正在尝试创建一个expect脚本,该脚本将在损坏的驱动器上运行fsck。目标是修复驱动器,以便我可以装载它并从中恢复数据 手动运行命令时,我得到: 超级块或分区表可能已损坏! 流产 如果我声明“否”,它将开始检查,我将收到: /dev/taines/TrickCeratops包含一个有错误的文件系统,请强制检查。 第1步:检查索引节点、块和大小 从扫描获取下一个inode时读取块1221066784(无效参数)时出错。忽略错误y 然后,我可以声明“是”继续前进,它将再次提示

因此,正如标题所示,我正在尝试创建一个expect脚本,该脚本将在损坏的驱动器上运行fsck。目标是修复驱动器,以便我可以装载它并从中恢复数据

手动运行命令时,我得到:

超级块或分区表可能已损坏! 流产

如果我声明“否”,它将开始检查,我将收到:

/dev/taines/TrickCeratops包含一个有错误的文件系统,请强制检查。 第1步:检查索引节点、块和大小 从扫描获取下一个inode时读取块1221066784(无效参数)时出错。忽略错误y

然后,我可以声明“是”继续前进,它将再次提示我:

强制重写

这就是我遇到问题的地方。。。我最多可以自动回答前两个问题,但我无法让我的expect脚本在“强制重写?”上回答“是”,如果我可以让它回答第二个和第三个问题“是”,那么我需要循环它直到完成

到目前为止,我的脚本看起来是这样的:

    #!/bin/bash

    expect -c'

       set timeout -1

       set temp password

       spawn ./e2fsckscript.sh

       expect "password for user:"

       send "$temp\r"

       expect "Abort<y>?"

       send "no\r"

       expect {

               "Ignore error<y>?"{
                    send "yes\r"
               }

               "Force rewrite<y>?"{
                    send "yes\r"
               }
               exp_continue
       }
    '
#/bin/bash
期望-c'
设置超时-1
设置临时密码
生成。/e2fsckscript.sh
应为“用户密码:”
发送“$temp\r”
期待“中止”
发送“否\r\n”
期待{
“忽略错误?”{
发送“是”\r\n
}
“强制重写?”{
发送“是”\r\n
}
exp\u继续
}
'
“spawn./e2fsckscript.sh”只运行一个命令:

sudo e2fsck-b 32768/开发/进尺/三角龙


为什么不运行
e2fsck-y…其他东西…
?因为如果我运行e2fsck-y,它将对中止提示回答“是”,然后exit@pynexj一般来说,我对linux和脚本编写还比较陌生,所以也许你可以帮我更多的忙。我真的不知道sexpect会对我的努力产生什么影响?看起来和我正在做的完全一样?只是因为我注意到您在bash脚本中使用了
expect-c…
,这向我表明您更容易使用bash脚本。