sh/bash/dash/ksh/zsh等Shell脚本
-
wangjingchu
- 帖子: 25
- 注册时间: 2008-05-17 9:56
-
联系:
#1
帖子
由 wangjingchu » 2010-12-25 9:33
原文件是这样的
想在
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
-
IDRI
- 帖子: 476
- 注册时间: 2010-07-02 21:47
#2
帖子
由 IDRI » 2010-12-25 10:17
感觉这只是你代码的一部份,我没看太懂。不知道你说的是什么问题。
有几个问题我还是看出来了。
1.在ubuntu下在shell代码里不能用let,当然如果你的第一行不是#! /bin/sh,可以忽视
2.$count=$count+1,最好写成count=$count + 1.
我也是新手,望有高手来指导一二

对系统:更加了解; 对软件:更强,更新,更有趣
ubuntu--arch--gentoo
vim(latex-suit),tex(xelatex,metapost),zim,chromium,virtualbox,awk......
-
wangjingchu
- 帖子: 25
- 注册时间: 2008-05-17 9:56
-
联系:
#3
帖子
由 wangjingchu » 2010-12-25 10:29
IDRI 写了:感觉这只是你代码的一部份,我没看太懂。不知道你说的是什么问题。
有几个问题我还是看出来了。
1.在ubuntu下在shell代码里不能用let,当然如果你的第一行不是#! /bin/sh,可以忽视
2.$count=$count+1,最好写成count=$count + 1.
我也是新手,望有高手来指导一二

看了老师的课件做也是出不来
代码: 全选
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 是不是有问题啊
-
trigger
- 帖子: 1604
- 注册时间: 2006-10-25 18:08
#4
帖子
由 trigger » 2010-12-25 10:48
谁说不能用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
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
-
wangjingchu
- 帖子: 25
- 注册时间: 2008-05-17 9:56
-
联系:
#5
帖子
由 wangjingchu » 2010-12-25 11:17
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
谢谢了,

高人哇
-
MaskRay
- 帖子: 61
- 注册时间: 2010-04-29 22:00
- 系统: Gentoo Linux ~amd64
-
联系:
#8
帖子
由 MaskRay » 2011-01-02 20:43
代码: 全选
#!/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