本帖最后由 littlecivic 于 2013-07-30 01:29 编辑 bash 1,2,3 都可以 实在无法理解 2 sum=$(( sum + $i)) 和 3 sum=$(( sum + i)) 高手帮忙 1. echo "56516"|sed 's/[0-9]/&\n/g'|grep -v "^$" | { while read i;do sum=$(( $sum + $i));done;echo $sum;} 2. echo "56516"|sed 's/[0-9]/&\n/g'|grep -v "^$" | { while read i;do sum=$(( sum + $i));done;echo $sum;} 3. echo "56516"|sed 's/[0-9]/&\n/g'|grep -v "^$" | ...
by littlecivic - Shell - 2013-07-30 13:20:48 阅读(7177) 回复(7)
今天同学问我在shell下如何用for去实现1到10的加法,我一下就愣了,不知道怎么去实现,可是自己shell已经学了那么长时间了,竟然这么简单的问题不知所措,惭愧啊。有时看来复习是非常必要的,得看我以前学过的东西了,呵呵! 不过我急忙在网上搜,终于搜到了一种实现方法,这种方法酷似c语言下的for循环语句,下面就是实现1到10 的加法:#!bin/bash//若是你本身用的 shell 是 bash2 的話,可以使用 for sum=0 for((...
写了一个对所有传入的参数做加法的shell函数,贴上来,给大家参考。 没有做什么异常处理,利用bc来计算 function calc_sum() { if [ $# -lt 1 ]; then echo 0 return 0 fi local __SUM_STR="scale=2;" local __VAR_COUNT=$# for i in `seq 1 $#`; do __SUM_STR="$__SUM_STR \$$i +" done #### cut the last + __SUM_STR=${__SUM_STR%+*} #### cal the sum ...
#!/bin/sh stime="$1" interval="$2" etime=$[$stime+100] echo $etime 运行的结果没有计算,而是字符串相连了,,请问是哪里出错了?
用while语句做1到100的加法,shell如下,执行时没有反应,请指点为,谢谢 var1=0 var2=0 while test $var1<100 do var2= $var2+$var1 var1= $var1+1 done echo "$var2" echo "$var1"
shell初学者,不要见笑。请高手帮忙修正一下: 已知问题: 1.不能屏蔽英文字符和符号的输入。 2.减法错误。 一共两个文件,addrobot和numf addrobot内容: #!/bin/sh clear cat /dev/null > num.txt cat /dev/null > numf.txt while [ TRUE ] do clear line=`wc -l num.txt|awk '{ print $1 }'` sum=`awk 'BEGIN { sum = 0 } { sum = sum + $1} END { OFMT = "%.2f"; print sum/100; }' num.txt` tput cup 25 20 echo $line行 ...
文档1格式是这个样子的: [code] [...] #下面是需要处理的数据,前三列是三维坐标,最后一列是“标号” 0.9986 0.9231 0.8750 1 0.4986 0.9231 0.8750 2 0.9986 0.4231 0.8750 3 0.4986 0.4231 0.8750 4 0.9986 0.9231 0.3750 5 0.4986 0.9231 0.3750 6 0.9986 0.4231 0.3750 7 0.4986 0.4231 0.3750 8 0.5013 0.5768 0.6250 9 0.0013 0.5768 0.6250 10 ...
大家好,我有这样一个文件file.文件信息如下: chr1 23 25 + ACT chr2 11 15 + ACTGA chr5 4 10 - GCTAGCT 现在想要将第5列分开,每一行一个信息:如下: chr1 3 + A chr1 4 + C chr1 5 + T chr2 11 + A chr2 12 + C chr2 13 + T chr2 14 + G chr2 15 + A chr5 4 - T chr5 ...
大家好:我有这样一个文件file,格式如下: N1 5 6 8 4 1 2 1 0 1 2 N2 5 6 5 6 9 1 2 4 4 2 N3 1 3 5 6 7 8 2 1 0 0 现在想提取符合以下条件的行: 第二列大于5,3-11列最多有2列大于5,其他列都小于5. 请问这样的程序怎么实现? 急求!!! 谢谢大家。