我有一个复杂的shell脚本,它调用各种其他脚本。这个脚本中的一些命令提示输入sudo密码。我正在编写一个包装脚本来自动执行此操作。 因此,通过在线研究,我发现了以下内容:
创建一个没有密码的sudoer文件,但似乎必须提供一个命令列表,这些条件将适用于该条件。我不想搜索脚本中的哪个命令正在调用sudo密码提示,因为这会占用太多时间。
期待效用。这适用于expect解释器,我不能生成脚本,因为spawn是一个期望的解释器命令。所以,基本上下面的代码与expect一起工作:
#!/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
当我运行此操作时,我收到以下错误: 无法执行&#34; complex_script.sh&#34;:没有这样的文件或目录 执行时 &#34;产生complex_script.sh rootfs&#34; (文件&#34; ./ a.sh&#34;第2行)
提前致谢。
答案 0 :(得分:0)
就我所见,代码很好。由于此行使用相对路径spawn ./complex_script.sh <arg1> <arg2>
尝试并使用完整路径,脚本应按预期工作。