论坛风格切换切换到宽版
  • 876阅读
  • 7回复

[问题求助]请问一下shell脚本,在sh下手工输入正常,写入脚本不正常 [复制链接]

上一主题 下一主题
 
发帖
2289
C币
-198556
威望
435
贡献值
1
银元
-3
铜钱
5124
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
如下两个命令,取得当前主机在线或者不.在线.区别是在最后部份,0x2与0x0,实际在ssh下能.得到正确的结果,如下所示.服务器

# cat /proc/net/arp | gre.p  -q '^172\.16\.0\.108     0x1   .      0x2'外贸
# echo $?
0
# cat /.proc/net/arp | grep  -q '^172\.16\.0.\.108     0x1         0x0'(        游戏          )
# echo $?
1

当.将此命令写入脚本时,部份如下所示.学习

#!/bin/sh

i=0
y=1
x=1
cat /proc/net/arp | grep  -q '^172\.16\.0.\.108     0.x1         0x2'(广告)
while [ $i == 0 .];do             电子

echo $?

当改变上面的为cat /proc/net/arp | grep  -q '^172\.16\.0\.108  .   0x1         0x0'.时,调试输出依然是显.示0,不管是写0x2还是0x0.,好像脚本并.不处理^172\.16\.0\.108后面的部份..

请问此问题该如何解决.看了遍shell暂..时没方向感.          婚庆

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线neverbye.
发帖
2058
C币
-60785
威望
381
贡献值
1
银元
0
铜钱
4567
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-14


QUOTE:cat /proc/net/arp | grep  -q '^172\.16\.0\.108     0x1         0x2'
while [ $i == 0 ];do

echo $?

这个$?是 [ $i == 0 ] 的返回值

离线风语.
发帖
2116
C币
-139044
威望
379
贡献值
1
银元
-2
铜钱
4703
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-14
谢谢指正,脚本更换一下位置现在正常了.

原来是自己搞错了,还以为$?这个值都是这个grep使用的.

[ 本帖最后由 ftwcy 于 2009-1-18 02:29 编辑 ]

发帖
2019
C币
-505456
威望
366
贡献值
4
银元
-2
铜钱
4381
人人网人气币
0
只看该作者 地板  发表于: 2010-04-14
echo $?

不能写在脚本里

发帖
2068
C币
-604970
威望
364
贡献值
4
银元
-2
铜钱
4677
人人网人气币
0
只看该作者 4楼 发表于: 2010-04-14


QUOTE:原帖由 changzi100 于 2009-1-18 14:08 发表
echo $?

不能写在脚本里


嗯.收到,当时写在那里是因为程序一直不能按我设计的意愿执行,所以就在那里写一个显示的,看看程序执行到那里究竟有什么问题

根据2楼的意思,明白后,将程序改成下面的就正常了,
while [ $i == 0 ];do
cat /proc/net/arp | grep  -q '^172\.16\.0\.108     0x1         0x2'
echo $?

因为我原程序是这样的,
while [ $i == 0 ];do

if []

fi

done

要用到cat /proc/net/arp | grep  -q '^172\.16\.0\.108     0x1         0x2' 返回的值判断再执行.总之谢谢了.现在问题解决了.


另外就是再问一下'^172\.16\.0\.108     0x1         0x2' 这个引号里的东西能不能用*%其它的东西写得更简便些,现在我的程序只能复制过去使用,不知道那几个空该怎么处理.

离线justinwei.
发帖
2072
C币
-140234
威望
368
贡献值
1
银元
-2
铜钱
4597
人人网人气币
0
只看该作者 5楼 发表于: 2010-04-14
cat /proc/net/arp | grep  -q '^172.16.0.108 *0x1 *0x2'
复制代码

离线ebengbu.
发帖
2059
C币
-60701
威望
375
贡献值
2
银元
-1
铜钱
4670
人人网人气币
0
只看该作者 6楼 发表于: 2010-04-14
返回值不正确

离线dwenhcil.
发帖
2054
C币
-132295
威望
381
贡献值
1
银元
-4
铜钱
4658
人人网人气币
0
只看该作者 7楼 发表于: 2010-04-14


QUOTE:原帖由 ynchnluiti 于 2009-1-18 21:11 发表
cat /proc/net/arp | grep  -q '^172.16.0.108 *0x1 *0x2'



快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个