分页: 1 / 1

急啊!各位大侠先帮忙看一下,这个shell程序怎么做哇!

发表于 : 2010-12-25 9:33
wangjingchu
原文件是这样的
想在
a: begin后面插入 //case 1
b: begin后面插入//case 2
...
一直到最后一个x:begin后插入//case n
这个应该怎么实现啊
原文如下

代码: 全选

case (stato)
    a: begin
	 if (line1 && line2) stato=f;
	 else		     stato=b;
	 outp<=line1^line2;
	 overflw<=0;
       end
    e: begin
	 if (line1 && line2) stato=f;
	 else		     stato=b;
	 outp<=line1^line2;
	 overflw<=1;
       end
    b: begin
	 if (line1 && line2) stato=g;
         else		     stato=c;
	 outp<=line1^line2;
	 overflw<=0;
       end

Re: 各位大侠先帮忙看一下,这个shell循环有什么问题吧~

发表于 : 2010-12-25 10:17
IDRI
感觉这只是你代码的一部份,我没看太懂。不知道你说的是什么问题。
有几个问题我还是看出来了。
1.在ubuntu下在shell代码里不能用let,当然如果你的第一行不是#! /bin/sh,可以忽视
2.$count=$count+1,最好写成count=$count + 1.
我也是新手,望有高手来指导一二 :em03

Re: 各位大侠先帮忙看一下,这个shell循环有什么问题吧~

发表于 : 2010-12-25 10:29
wangjingchu
IDRI 写了:感觉这只是你代码的一部份,我没看太懂。不知道你说的是什么问题。
有几个问题我还是看出来了。
1.在ubuntu下在shell代码里不能用let,当然如果你的第一行不是#! /bin/sh,可以忽视
2.$count=$count+1,最好写成count=$count + 1.
我也是新手,望有高手来指导一二 :em03
看了老师的课件做也是出不来

代码: 全选

str=`sed -n ':' b01.v`
#循环,以便连续插入
count=1
while[$count < $str]
do     
sed -i -e '/Case $count/i\
//Case $count+1' b01.v
let count=$count+1
done
那个do里的 $count+1 是不是有问题啊

Re: 各位大侠先帮忙看一下,这个shell循环有什么问题吧~

发表于 : 2010-12-25 10:48
trigger
谁说不能用let?语法错误当然不行:
[bash]#!/bin/bash
#sh010.sh
max=50 #变量max赋值
for i in `seq $max`
do
let max=max-i
(($max<0))&&break
echo $i $max
done[/bash]
./sh010.sh
1 49
2 47
3 44
4 40
5 35
6 29
7 22
8 14
9 5

Re: 各位大侠先帮忙看一下,这个shell循环有什么问题吧~

发表于 : 2010-12-25 11:17
wangjingchu
trigger 写了:谁说不能用let?语法错误当然不行:
[bash]#!/bin/bash
#sh010.sh
max=50 #变量max赋值
for i in `seq $max`
do
let max=max-i
(($max<0))&&break
echo $i $max
done[/bash]
./sh010.sh
1 49
2 47
3 44
4 40
5 35
6 29
7 22
8 14
9 5
谢谢了, :em02 高人哇

Re: 急啊!各位大侠先帮忙看一下,这个shell程序怎么做哇!

发表于 : 2010-12-25 13:24
wangjingchu
:em20 :em20 自己鼓捣鼓捣不出来啊

Re: 急啊!各位大侠先帮忙看一下,这个shell程序怎么做哇!

发表于 : 2011-01-02 19:15
sugarbyheart
trigger的例子真的很有趣~

Re: 急啊!各位大侠先帮忙看一下,这个shell程序怎么做哇!

发表于 : 2011-01-02 20:43
MaskRay

代码: 全选

#!/usr/bin/expect

spawn -noecho -open [open 所需编辑的文件 r]
log_user 0
while 1 {
    expect {
        -re "\[^\n]*\n" {
            if {[regexp "(.): begin" $expect_out(0,string) ignore c] == 1} {
                send_user "[string trimright $expect_out(0,string) \n] //case [expr [scan $c %c] - 96]\n"
            } else {
                send_user $expect_out(0,string)
            }
        }
        eof break
    }
}
wait