免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3677 | 回复: 12
打印 上一主题 下一主题

[数值计算] let赋值始终不成功求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-10-14 11:41 |只看该作者 |倒序浏览
本帖最后由 pansue 于 2014-10-14 14:33 编辑

file1: TEST.09122014_040912_OOFF.txt
413    0041372
file2: TEST.09122014_040912_OLLW.txt
023    0002117

#/bin/bash
###########Variable Define
DELPATH=/home2/ypan/
INPUTPATH=/input/in/
FILENAME=`ls "$DELPATH"`

##########Ready to go
echo "######Ready to copy WFM310 input files####"
cd $DELPATH

######check if input file arrived
test -f $FILENAME&&echo "#######INPUT FILE ARRIVED ,Ready To Move#####"


##############unzip input file
echo "##########Unzip The Input File...############"
unzip   $FILENAME

#########MOVE ZIP FILE INTO STATING
echo "####Backup the ZIP file#########"
mv $FILENAME ../staging/

######COPY UNZIPPED FILES INTO INPUT PATH
echo "#####Copy the Unzip Files Into Input Path...#####"
mv  *  $INPUTPATH

##########Show the volume information
echo "############Change Directory to Input Path##########"
cd $INPUTPATH
echo "############Ready to Fetch the volume information...#######"


OLLW=`ls PROD*OLLW.txt`
OOFF=`ls PROD*OOFF.txt`

#####Set the Variable
OLLW_A=`cat $OLLW|tail -1|cut -d ' ' -f 1`
OLLW_B=`cat $OLLW|tail -1|cut -d ' ' -f 5`
OOFF_A=`cat $OOFF|tail -1|cut -d ' ' -f 1`
OOFF_B=`cat $OOFF|tail -1|cut -d ' ' -f 5`
#####Rip the '00' at the beginning of digits 去掉数字前面的0
LA=`echo $OLLW_A |awk '{print $0+0}'`
LB=`echo $OLLW_B |awk '{print $0+0}'`
OA=`echo $OOFF_A |awk '{print $0+0}'`
OB=`echo $OOFF_B |awk '{print $0+0}'`


#####Plus the value    问题出在这里,执行到这里的时候报错
let T_A=LA+OA
let T_B=LB+OB


####Print the volume email


echo"#########################################"
echo"File Type |"echo "CON Files                          |"echo"Letter ID Count|"echo"Total Letter Count|"
echo"------------------------------------------------------------------------------------------------------"
echo"OLLW       "echo"$OLLW |"                               echo"$OLLW_A       |"echo"$OLLW_B           |"
echo"------------------------------------------------------------------------------------------------------"
echo"OOLL       "echo"$OOFF|"                                echo"$OOFF_A       |"echo"$OOFF_B           |"
echo"------------------------------------------------------------------------------------------------------"
echo"Total                                                |" echo"$T_A   |" echo"$T_B   |"
echo"------------------------------------------------------------------------------------------------------"

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2014-10-14 12:09 |只看该作者
let之前打印出来的LA OA LB OB是什么?

论坛徽章:
0
3 [报告]
发表于 2014-10-14 13:25 |只看该作者
是4个数字,因为前面有0,所以要把0去掉
Herowinter 发表于 2014-10-14 12:09
let之前打印出来的LA OA LB OB是什么?

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
4 [报告]
发表于 2014-10-14 13:28 |只看该作者
本帖最后由 chengchow 于 2014-10-14 13:29 编辑

你这是shell还是awk?
shell变量调用需要添加$
let T_A=$LA+$OA
let T_B=$LB+$TB

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
5 [报告]
发表于 2014-10-14 13:32 |只看该作者
回复 4# chengchow


我这里测试没有问题
[root]# a=1
[root]# b=2
[root]# let c=a+b
[root]# echo $c
3

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
6 [报告]
发表于 2014-10-14 13:39 |只看该作者
回复 4# chengchow

不需要$好吧!
   

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
7 [报告]
发表于 2014-10-14 13:56 |只看该作者
本帖最后由 chengchow 于 2014-10-14 14:13 编辑

@yestreenstars@Shell_HAT终于学会@了
记错了
let调用确实可以不用$
你66/67行确定是贴出来的最后两句吗?
如果是let "t_a=LA+OA"
let "t_b=LB+OB"
试试
...

脚本不全,也没有范例文件,不好判断!

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
8 [报告]
发表于 2014-10-14 13:57 |只看该作者
回复 1# pansue


  贴一下运行过程可好?
  bash -x  xxoo.sh

论坛徽章:
0
9 [报告]
发表于 2014-10-14 14:09 |只看该作者
  1. #/bin/bash
  2. ###########Variable Define
  3. DELPATH=/home2/ypan/
  4. INPUTPATH=/new/input/in/
  5. FILENAME=`ls "$DELPATH"`

  6. ##########Ready to go
  7. echo "######Ready to copy WFM310 input files####"
  8. cd $DELPATH

  9. ######check if input file arrived
  10. test -f $FILENAME&&echo "#######INPUT FILE ARRIVED ,Ready To Move#####"

  11. ##############unzip input file
  12. echo "##########Unzip The Input File...############"
  13. unzip   $FILENAME

  14. #########MOVE ZIP FILE INTO STATING
  15. echo "####Backup the ZIP file#########"
  16. mv $FILENAME ../staging/

  17. ######COPY UNZIPPED FILES INTO INPUT PATH
  18. echo "#####Copy the Unzip Files Into Input Path...#####"
  19. mv  *  $INPUTPATH

  20. ##########Show the volume information
  21. echo "############Change Directory to Input Path##########"
  22. cd $INPUTPATH
  23. echo "############Ready to Fetch the volume information...#######"


  24. OLLW=`ls PROD*OLLW.txt`
  25. OOFF=`ls PROD*OOFF.txt`

  26. #####Set the Variable
  27. OLLW_A=`cat $OLLW|tail -1|cut -d ' ' -f 1`
  28. OLLW_B=`cat $OLLW|tail -1|cut -d ' ' -f 5`
  29. OOFF_A=`cat $OOFF|tail -1|cut -d ' ' -f 1`
  30. OOFF_B=`cat $OOFF|tail -1|cut -d ' ' -f 5`
  31. #####Rip the '00' at the beginning of digits
  32. LA=`echo $OLLW_A |awk '{print $0+0}'`
  33. LB=`echo $OLLW_B |awk '{print $0+0}'`
  34. OA=`echo $OOFF_A |awk '{print $0+0}'`
  35. OB=`echo $OOFF_B |awk '{print $0+0}'`


  36. #####Plus the value
  37. let T_A=LA+OA
  38. let T_B=LB+TB


  39. ####Print the volume email


  40. echo"#########################################"
  41. echo"File Type |"echo "CON Files                          |"echo"Letter ID Count|"echo"Total Letter Count|"
  42. echo"------------------------------------------------------------------------------------------------------"
  43. echo"OLLW       "echo"$OLLW |"                               echo"$OLLW_A       |"echo"$OLLW_B           |"
  44. echo"------------------------------------------------------------------------------------------------------"
  45. echo"OOLL       "echo"$OOFF|"                                echo"$OOFF_A       |"echo"$OOFF_B           |"
  46. echo"------------------------------------------------------------------------------------------------------"
  47. echo"Total                                                |" echo"$T_A   |" echo"$T_B   |"
  48. echo"------------------------------------------------------------------------------------------------------"
复制代码
回复 8# 关阴月飞


   

论坛徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
10 [报告]
发表于 2014-10-14 14:12 |只看该作者
回复 4# chengchow


    谁说let里面要用$的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP