当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 12 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]求助,能不能让shell脚本向程序输入多行命令参数?
帖子发表于 : 2007-04-28 16:28 
头像

注册: 2006-07-15 11:20
帖子: 990
地址: 枫叶刀市
送出感谢: 2
接收感谢: 0 次
有些命令参数无法一行输完,比如瑞捷的xrgsu,需要按回车才能输入下一个参数,能不能用一个shell脚本一次性把这些参数都输完?

谢谢每一个回帖的朋友!


_________________
Thinkpad T400


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-04-28 17:02 
头像

注册: 2006-07-15 11:20
帖子: 990
地址: 枫叶刀市
送出感谢: 2
接收感谢: 0 次
自己顶一下,每次上网输用户名和密码真的很烦啊!
xsupplicant 也用不成。


_________________
Thinkpad T400


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-04-28 17:12 
头像

注册: 2006-05-03 0:39
帖子: 8273
地址: المريخ
送出感谢: 0 次
接收感谢: 1
Nile 写道:
自己顶一下,每次上网输用户名和密码真的很烦啊!
xsupplicant 也用不成。


xsupplicant设置好用户名和密码(在配置文件里面)之后就根本不用去理会它啦,你让它全自动运行就行了。

多行的写法:
代码:
command_you_want param1 param2 param3 \
param4 param5 \
param6 ...


_________________
PHP是最好的语言!不服来战!


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-04-28 17:20 
头像

注册: 2006-07-15 11:20
帖子: 990
地址: 枫叶刀市
送出感谢: 2
接收感谢: 0 次
谢谢楼上老兄了!

我的xsupplicant总出错
代码:
Values [0..7] cannot be combined with character attributes!


_________________
Thinkpad T400


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-04-28 17:24 
头像

注册: 2006-07-15 11:20
帖子: 990
地址: 枫叶刀市
送出感谢: 2
接收感谢: 0 次
stlxv 写道:
Nile 写道:
自己顶一下,每次上网输用户名和密码真的很烦啊!
xsupplicant 也用不成。


xsupplicant设置好用户名和密码(在配置文件里面)之后就根本不用去理会它啦,你让它全自动运行就行了。

多行的写法:
代码:
command_you_want param1 param2 param3 \
param4 param5 \
param6 ...


不是脚本的多行啦,是命令必修多次按回车输入参数啊。


_________________
Thinkpad T400


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-04-28 17:35 

注册: 2007-03-29 12:59
帖子: 262
送出感谢: 0 次
接收感谢: 0 次
echo -e "a\nb\nc\n"| command
你试试这个,我没测试,只是个设想


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-04-28 17:41 

注册: 2007-03-29 12:59
帖子: 262
送出感谢: 0 次
接收感谢: 0 次
我已经测试了,可行
代码:
#!/bin/bash
read a
echo $a
read b
echo $b
read c
echo $c
~

代码:
[test@ziyun test]$ echo -e "1\n2\n3\n"| ./return.sh 
1
2
3


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-04-28 23:35 
头像

注册: 2006-07-15 11:20
帖子: 990
地址: 枫叶刀市
送出感谢: 2
接收感谢: 0 次
先谢谢楼上的。

理论上应该没错,可以把参数分别传给程序,但我研究了半天,总感觉在参数前好像多传了一个回车之类的东西,理由是xrgsu得到的参数好像都后措了一位!因为没法看到具体参数所以只是推测(也有可能根本没传进去)。

但可以试试
代码:
echo -e "/home"| cd

没有任何反应!
再试试
代码:
sudo echo -e "aa" | gvim

打开的文件是“未命名”!
aa并没有传给gvim,奇怪!

我又试了一下文件输入重定向的方法,
新建一个文本aa.sh

代码:
aa


再输入
代码:
gvim < aa.sh

新建的文件名还是“未命名”!

求高人指教!


_________________
Thinkpad T400


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-04-28 23:41 

注册: 2007-03-29 12:59
帖子: 262
送出感谢: 0 次
接收感谢: 0 次
提醒你一下,并不是所有的命令都接受管道输入,只有接受标准输入的命令才接受管道输入


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-04-29 6:59 
头像

注册: 2006-07-15 11:20
帖子: 990
地址: 枫叶刀市
送出感谢: 2
接收感谢: 0 次
ziyun 写道:
提醒你一下,并不是所有的命令都接受管道输入,只有接受标准输入的命令才接受管道输入


oh! 谢谢楼上的热心帮助。

不是很明白,估计没戏了.....


_________________
Thinkpad T400


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-04-29 14:01 

注册: 2007-03-29 12:59
帖子: 262
送出感谢: 0 次
接收感谢: 0 次
这里有一个自动输入用户名和密码的telnet shell 或许对你有帮助

原载chinaunix.net shell版 作者panlm

发表于: 2003-11-13 10:00


自动输入用户名和密码用于tenlnet的shell, 哈哈

用linux的朋友且经常用配置路由器的可有福了. :)

今天刚刚完成, 大家多提意见 :)

#===========autotelnet.sh==============
#!/bin/bash
if (( $# != 1 ))
then
echo " usage: $0 address "
exit 1
fi
ip=$1
inp1=`cat param |grep "$ip" |awk '{ print $2 }'`
inp2=`cat param |grep "$ip" |awk '{ print $3 }'`
inp3=`cat param |grep "$ip" |awk '{ print $4 }'`

inputfile=in
outputfile=out
rm -fr $inputfile
rm -fr $outputfile
mknod $inputfile p
touch $outputfile

#file description 7 for out and 8 for in
exec 7<>$outputfile
exec 8<>$inputfile

telnet $ip <&8 >&7 &

sleep 1; echo $inp1 >> $inputfile
sleep 1; echo $inp2 >> $inputfile
sleep 1; echo $inp3 >> $inputfile

tail -f $outputfile &

while true
do
read str
if [[ $str = "quit" || $str = "exit" ]]
then echo $str >> $inputfile ; exit
else echo $str >> $inputfile
fi
done
#==================================


参数文件, 输入在出现正常提示符之前需要输入的所有内容, 用空格分开, 以ip地址或者hostname开头
#=====param============
localhost root password

#=====================


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-04-29 15:21 
头像

注册: 2006-07-15 11:20
帖子: 990
地址: 枫叶刀市
送出感谢: 2
接收感谢: 0 次
Woo!标准的好东东!收下了!

虽然看不太懂,但感觉因该可以解决问题,五一好好钻研shell编程,争取搞定之!

(以下省略千余字的感谢之辞...)


_________________
Thinkpad T400


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 12 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译