Linux shell脚本如何自动运行程序并输入命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux shell脚本如何自动运行程序并输入命令相关的知识,希望对你有一定的参考价值。

我想在linux平台上自动运行某一个App(与windows平台上功能一样)。
这个App打开后要输入一些自定义的参数,如i,就是登陆某一个服务器等等。
我在windows平台上用vbs写好了,可以运行,想请问下linux下如何编写shell脚本实现同样的功能呢?
请大虾指教。以下是windows上vbs代码:

'创建对象
set objShell = createobject("wscript.shell")
strCommandLine = "refapp.bat"
'运行程序
objShell.run(strCommandLine)
'睡眠2s,等程序打印完log
wscript.sleep 2000

'----login----------------------------------------
objShell.sendkeys "i" '登陆
wscript.sleep 500
objShell.sendkeys "ENTER" '输入
wscript.sleep 500

我建议你使用shell的spawn命令,很好用的,能实现你说的功能! 参考技术A linux下可以使用crontab计划任务实现自动运行程序追问

查看了下资料好像不行吧,能否给个小例子。呵呵

追答

所谓计划任务就是按周期执行

比如
0 8 * * * /youshell.sh > /dev/null

表示每天8点执行一次

如果你仅仅需要执行一次,那么可以使用at

追问

不行哦,我还需要输入。谢谢你

运行linux脚本,遇到要按回车键,怎么让它自动应答,继续运行脚本?

实现的方法和详细的操作步骤如下:

1、第一步,连接相应的linux主机,进入linux命令行状态,并等待输入shell命令,见下图,转到下面的步骤。

2、第二步,完成上述步骤后,在linux命令行中输入如下箭头所示的代码,见下图,转到下面的步骤。

3、第三步,完成上述步骤后,按“
 Enter”键运行shell命令,将看到直接执行cp命令,而不提示用户手动判断替代,见下图。这样,就解决了这个问题了。

参考技术A

1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。

2、其次,在linux命令行中输入:cp -f word.txt /word.txt。

3、键盘按“回车键”运行shell指令,此时会看到cp命令直接执行不提示用户手动判断覆盖了。

参考技术B

    用echo "应答内容" | shell脚本

    例如修改user用户密码:

    #echo "123456\\n123456\\n" | passwd user    

    利用expect实现自动应答,也不难,你从网上搜一下

追问

不行阿,我意思是运行脚本它要按回车才会继续下一步,能让它自动应答继续下一步吗?命令是ssh密钥对生成的时候要回车,
ssh-keygen -t rsa
可以让它自动应答?

追答

刚才试了一下,echo的方法输入密钥不行,用expect吧,写了个例子给你:

expect <<EOF
set timeout -1
spawn ssh-keygen -t rsa
expect "(/root/.ssh/id_rsa):"
send "\\r"
expect "(empty for no passphrase):"
send "\\r"
expect "again:"
send "\\r"
expect eof
EOF

追问

出现这个,大神你把命令写出来吧,成功就采纳

追答

上面我已经给你写好了脚本,你插在自己需要的地方就行了

本回答被提问者采纳
参考技术C 使用yes 命令
yes | command or script

以上是关于Linux shell脚本如何自动运行程序并输入命令的主要内容,如果未能解决你的问题,请参考以下文章

如何在Windows下运行linux shell脚本

linux shell 脚本运行完毕后不能自动停止

linux中设计一个shell脚本程序可以接受命令行输入的参数执行相应的菜单命令

如何实现在运行shell程序时添加选项-h能提示程序的用法?

如何在shell脚本中自动输入密码?

运行linux脚本,遇到要按回车键,怎么让它自动应答,继续运行脚本?