最近在项目中用到shell脚本来执行命令,发现公司周围都不会写shell脚本
shell是用户和Linux操作系统之间的接口。类似windows系统的dos命令行。Linux中有多种shell,其中缺省使用的是Bash。但是如果使用到交互式输入密码的需要使用expect来执行,详见[sh和bash](http://blog.csdn.net/li563868273/article/details/51277399)
直接上脚本
#!/usr/bin/expect
spawn ssh serviceop@10.31.92.70
set timeout 2
expect "password:"
send "115LbUrAbEsZw\r"
expect "*]#"
set password "wuxin952"
spawn su root
expect "password:"
send "wuxin952\r"
expect "#"
send "/wls/serviceop/virtuoso-opensource/home/bin/isql localhost:13002\r"
send "DB.DBA.TTLP_MT(file_to_string_output('/wls/serviceop/virtuoso_script/loan.ttl'),'','http://www.xiaowei.com');\r"
interact
send:用于向进程发送字符串
expect:从进程接收字符串
spawn:启动新的进程
interact:允许用户交互
expect “#”代表确认切换为root用户后才能执行下面语句,没有这句无法执行下面语句
- vi a.sh 可以查看该文件内容,如果要修改,则键盘输入a,然后使用上下键切换,保存,键盘输入 esc–:–wq回车即可
- ls -l查看该文件夹下的文件属性
参考链接:
https://www.cnblogs.com/iloveyoucc/archive/2012/05/11/2496433.html
https://www.cnblogs.com/lzrabbit/p/4298794.html
http://man.linuxde.net/chmod