红联Linux门户
Linux帮助

初次接触shell编程,分享一点小心得

发布时间:2013-11-13 00:34:11来源:红联作者:小子要买房
今天第一次开始接触到shell的编程,尝试去实现比较简单的功能(其实就是熟悉一些简单的shell,然后做一个简单的函数调用),但是依然碰到了不少问题,费了不少的力气才找到原因所在,这里就分享一下,让和我一样的新手尽量避免这些非技术的问题。先上代码:
function add()
{
((_Num1=$1+$2))
echo "The result of operate is : ${_Num1}"
}
function mins()
{
_Num1=$[$1-$2]
echo "The result of operate is : ${_Num1}"
}

case $1 in
-add)
add $2 $3
;;
-mins)
mins $2 $3
;;
-help)
echo "The srcipt is support the operation of add and mins"
echo "Two parameter should follow the operate symbol"
echo "For example : $0 -add 4 5"
;;
*)
echo "Input errore"
;;
esac
代码其实非常的简单,发现的问题真不少。
首先是加法运算,最初写的是_Num1=$1+$2,结果一直打印出来的结果不对,如果输入2和3,那么结果就是2+3,不会直接显示5,其实方法有很多种,我用来其中两种办法,一种是直接用(())将整个表达式括起来,另外一种就是用$[]符号将左边的运算括起来。这两种经过测试是可以的,至于为什么,那就得大神来给我们这些小菜鸟来指点了。^_^

写好脚本之后,开始运行测试,结果去出人意料,直接报错(出现符号错误)。
first.sh:1:first.sh:Syntax error :"("unexpected
刚开始一直是以为自己的函数写错,尝试了几次修改之后,问题得不到解决,可以认为不是编程的问题。想了一下,由于脚本是在windows下编写的,在linux下执行的,果断用dos2unix工具将脚本转换一下,果然问题解决。哈哈,发现shell编程还是很有意思的。测试指令与结果:
# ./first.sh -add 7 8
The result of operate is : 15
虽然解决的问题很简单,但是这也是一种成长的方式••嘿嘿••以后会继续学习,碰到比较难的问题时,希望能有大神指点。该睡觉了••大伙晚安??o(∩_∩)o 哈哈
文章评论

共有 56 条评论

  1. lukasli 于 2017-03-24 02:00:34发表:

    呃,好吧,最好知道shell解决什么问题。不过有被python替代的趋势

  2. Alwa 于 2017-03-22 23:38:16发表:

    感谢

  3. yangyanlong 于 2015-04-28 09:29:25发表:

    学习了

  4. sukey_hero 于 2015-01-30 16:06:02发表:

    顶!

  5. tianhaighj 于 2015-01-28 13:20:47发表:

    这TM跟非技术有关?

  6. smartrobot 于 2015-01-26 14:01:30发表:

    挺好的分享

  7. felixchenjia 于 2014-12-31 17:12:15发表:

    学习了

  8. cc20911 于 2014-12-10 12:46:31发表:

    谢谢分享

  9. 1597644528 于 2014-11-18 20:58:09发表:

    很好

  10. zzirvin 于 2014-11-15 10:06:08发表:

    学习

  11. rookier 于 2014-11-08 16:29:32发表:

    感谢分享,谢谢

  12. jeffery_zou 于 2014-11-03 23:18:40发表:

    mark一个学习学习!!!

  13. hyh717 于 2014-07-31 13:43:32发表:

    恩,来看看

  14. army20151984 于 2014-07-02 12:31:45发表:

    学习下1

  15. chrile 于 2014-06-15 15:56:53发表:

    说真的我对Shell这玩意怎么就提不起兴趣,看来一直就是个门外汉啊

  16. anbin 于 2014-06-04 22:24:42发表:

    同感,又进步了!

  17. honglianqxw123 于 2014-05-21 14:54:12发表:

    楼主好样的,继续努力。

  18. Lynnxubj 于 2014-05-21 10:27:18发表:

    学习了,感兴趣

  19. tanchunlin 于 2014-05-19 23:01:37发表:

    红联社区,linux园地

  20. weilongwu 于 2014-04-25 20:41:56发表:

    受教了

  21. 木子口王云 于 2014-04-24 20:55:09发表:

    感谢小子要买房的分享,本贴加入到论坛的Linux分享贴中

  22. yangyq2014 于 2014-03-15 20:41:07发表:

    谢谢啦,我是新人,支持~~捧场

  23. lyqyahoo123 于 2014-02-26 23:16:09发表:

    下载下来试试。

  24. 463748260 于 2014-02-19 14:50:49发表:

    学习学习

  25. qxfsy 于 2014-02-09 10:52:58发表:

    学习

  26. chen59326 于 2014-01-23 10:08:32发表:

    学习眯了一下

  27. chen59326 于 2014-01-23 10:08:00发表:

    学习眯了一下

  28. tym5410 于 2014-01-17 14:21:00发表:

    不错!

  29. sodawewin 于 2014-01-13 09:33:37发表:

    非常欣赏...要买 房

  30. 网络情报站 于 2014-01-08 10:29:45发表:

    很好

  31. YQ_Linux 于 2014-01-07 20:41:33发表:

    我现在是要看会Linux的shell脚本,然后再写shell脚本,不知道方法正不正确

  32. code_new 于 2013-12-22 13:02:31发表:

    学习了

  33. Tron 于 2013-12-18 12:53:21发表:

    进步源于分享,多谢!

  34. 谢幕烟雨 于 2013-12-18 09:32:11发表:

    小菜鸟来学习了、、、

  35. lypop123 于 2013-12-12 13:03:05发表:

    好,谢谢!!!!!!!!!

  36. weiwudianxin 于 2013-12-10 17:41:23发表:

    顶起,感谢分享

  37. jiajinkui1988 于 2013-12-09 22:13:23发表:

    很好。谢谢楼主

  38. ouxianzhi520 于 2013-12-08 22:20:02发表:

    一起学习,还未开始shell

  39. 于 2013-12-08 15:32:03发表:

    勇于尝试,学习了

  40. bigsea216 于 2013-12-07 13:11:49发表:

    学习学习