红联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. watchman 于 2013-11-25 23:26:45发表:

    感谢分享

  2. hblovey 于 2013-11-25 15:16:51发表:

    嗯,好

  3. laguanla 于 2013-11-25 11:24:09发表:

    谢谢分享,学习了

  4. man5735 于 2013-11-25 11:14:03发表:

    谢谢大侠

  5. man5735 于 2013-11-25 11:05:10发表:

    谢谢啊

  6. xiaoluren 于 2013-11-24 11:18:05发表:

    一起学习

  7. 于 2013-11-23 13:08:38发表:

    学习了

  8. rootman 于 2013-11-22 11:16:48发表:

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

  9. mcchenyao 于 2013-11-17 09:33:56发表:

    学习了

  10. zhanggaoju 于 2013-11-16 20:15:20发表:

    学习了,come on

  11. nable008 于 2013-11-15 11:02:16发表:

    我也想学shell,哪位有系统的资料,踢我一份吧,email nable008@163.com

  12. woshimoming 于 2013-11-15 02:29:38发表:

    顶起,感谢分享

  13. sunchao6106 于 2013-11-14 18:04:54发表:

    号鼎新

  14. 敖猪 于 2013-11-13 21:53:28发表:

    嗯 挺好的

  15. Growth兆 于 2013-11-13 09:49:44发表:

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

  16. cleeto 于 2013-11-13 08:46:36发表:

    学习了