因此,正如标题所示,我正在尝试创建一个期望脚本,该脚本将在损坏的驱动器上运行 fsck 。目的是修复驱动器,以便我可以挂载驱动器并从中恢复数据。
手动运行命令时,我得到:
超级块或分区表很可能已损坏! 中止吗?
如果我声明 “否” ,它将开始检查,并且我收到:
/ dev / footage / TrickCeratops包含错误的文件系统,请强制检查。 通道1:检查inode,块和大小 从扫描获取下一个索引节点时,错误读取块1221066784(无效参数)。忽略错误y?
然后我可以说 “是” 前进,它将再次提示我:
强制重写y吗?
这是我遇到的问题...我可以自动执行前两个答案,但是无法获得期望的脚本来回答 “是” < / strong>上的 “是否要重写?” 。如果可以,请回答第二和第三个问题,那么我需要循环遍历直到完成。 >
到目前为止,我的脚本看起来像这样: “ spawn ./e2fsckscript.sh” 只需运行命令: sudo e2fsck -b 32768 / dev / footage / TrickCeratops #!/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
}
'