【发布时间】:2017-07-20 19:03:02
【问题描述】:
我有一个复杂的 shell 脚本,它调用各种其他脚本。此脚本中的某些命令提示输入 sudo 密码。我正在编写一个包装脚本来自动执行此操作。 因此,通过在线研究,我发现了以下内容:
创建一个没有密码的 sudoer 文件,但似乎必须给出适用此条件的命令列表。我不想搜索脚本中的哪个命令正在调用 sudo 密码提示,因为这会花费太多时间。
期待实用程序。这适用于期望解释器,我无法生成脚本,因为 spawn 是期望解释器命令。因此,基本上下面的代码适用于期望:
#!/usr/bin/expect spawn sudo su expect "*assword" send "abc12\n" interact
但我需要的是这个:
#!/usr/bin/expect
spawn ./complex_script.sh <arg1> <arg2>
expect "*assword"
send "abc12\n"
interact
当我运行它时,我收到以下错误: 无法执行“complex_script.sh”:没有这样的文件或目录 在执行时 “产生 complex_script.sh rootfs” (文件“./a.sh”第 2 行)
- 回显密码 | script.sh 也不起作用。
提前致谢。
【问题讨论】:
-
为什么不以 root 身份启动脚本而忘记 sudo 命令?
-
错误是找不到要生成的脚本。您是否尝试过使用绝对路径?
标签: bash shell automation