Chinaunix

标题: bash脚本问题 [打印本页]

作者: jidixuelang    时间: 2009-03-11 10:59
标题: bash脚本问题
那种需要登录 再执行的程序
我怎么写成个bash脚本执行哦


某个命令行程序  needlogin ,需要先登录然后再执行操作命令 action


尝试过如下:

#!/bin/sh

needlogin  -u *** -p ***
action *****
exit

#!/bin/sh
needlogin  -u *** -p ***
sleep 5
action *****
sleep 5
exit

好像那些需要登录后才有的命令(action) 并没有被执行
作者: oldoger    时间: 2009-03-11 11:24
记得加载环境变量
作者: jidixuelang    时间: 2009-03-11 11:51
没太明白您的意思


我翻了个老贴

按帖子上的意思
bash执行程序needlogin后,shell就由needlogin接管了。

我实际执行我那个脚本的结果好像真是这样
只有我手动exit以后
上面提到的"action ****"及以后脚本才会执行,而且提示action不存在。因为action是needlogin的内部命令/

bash在执行一个程序后,真的没办法再控制这个程序了吗?包括输入
只有等这程序退出(执行完成)后。才继续往下执行??
作者: ztj2247    时间: 2009-03-11 11:59
原帖由 jidixuelang 于 2009-3-11 10:59 发表
那种需要登录 再执行的程序
我怎么写成个bash脚本执行哦


某个命令行程序  needlogin ,需要先登录然后再执行操作命令 action


尝试过如下:

#!/bin/sh

needlogin  -u *** -p ***
action *****
...



思路好乱阿  楼主想问的是什么???整理清楚再发好吗
作者: waker    时间: 2009-03-11 12:02
http://bbs2.chinaunix.net/viewth ... p;page=1#pid4559521
作者: linuxboy823    时间: 2009-03-11 12:36
原帖由 waker 于 2009-3-11 12:02 发表
http://bbs2.chinaunix.net/viewthread.php?tid=674903&page=1#pid4559521

老大是不是这个意思?写成类似这种的?
sqlplus linuxboy/linuxboy@DB1<<!
set linesize 11
set pagesize 0
set feedback off
set echo off
spool 1.txt
select * from tab;
spool off
exit
!

作者: xiaobing927    时间: 2009-03-11 12:54
标题: 我可能明白你的意思
楼主的意思好像是说要求完成像passwd,ssh,telnet,ftp这类交互程序的非交互运行
例如:
#!/usr/bin/expect -f
spawn scp -r /home/work/images_starcraft root@192.168.1.6:/share/
set timeout 10
expect "root@192.168.1.6's password:"
exec sleep 1
send "zse45tgb\r"
interact

运行: expect scp.exp
作者: jidixuelang    时间: 2009-03-11 13:00
谢谢楼上各位

waker给的那个链接里有详细参考文档

linuxboy和xiaobing的理解也是对的


最后我这样写了


(
sleep 5
echo "action ****"
) | needlogin -u**** -p*****




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2