我想使用单个shell脚本来执行一堆命令。其中一些命令包括:scp,cd,tar,date,expect,spawn。
当我声明#!/ bin / sh或#!/ bin / bash时,没有任何expect命令工作 - 这是可以理解的。当我声明#!/ usr / bin / expect -f然后cd,tar,date不起作用 - 我想这也是预期的(没有双关语)。
是否可以使用单个解释器使用所有这些命令,或者我可以在途中声明另一个命令吗?我潜入了子弹,但没有成功。
答案 0 :(得分:3)
您可以通过shell here-doc:
将命令提供给expect
#!/bin/sh
# shell code....
expect <<EOS
# expect code...
EOS
# back to shell code...
答案 1 :(得分:1)
实际上,如果您在预期下运行,则可以使用all the commands of Tcl,因此:
clock format [clock seconds]
exec tar cf stuff.tar file1 file2 file3
数据和控件结构与sh或bash不同,但一旦习惯它们就会更强大。