今天第一次开始接触到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 哈哈
watchman 于 2013-11-25 23:26:45发表:
感谢分享
hblovey 于 2013-11-25 15:16:51发表:
嗯,好
laguanla 于 2013-11-25 11:24:09发表:
谢谢分享,学习了
man5735 于 2013-11-25 11:14:03发表:
谢谢大侠
man5735 于 2013-11-25 11:05:10发表:
谢谢啊
xiaoluren 于 2013-11-24 11:18:05发表:
一起学习
于 2013-11-23 13:08:38发表:
学习了
rootman 于 2013-11-22 11:16:48发表:
感谢小子要买房的分享,本贴加入到论坛的Linux分享贴中
mcchenyao 于 2013-11-17 09:33:56发表:
学习了
zhanggaoju 于 2013-11-16 20:15:20发表:
学习了,come on
nable008 于 2013-11-15 11:02:16发表:
我也想学shell,哪位有系统的资料,踢我一份吧,email nable008@163.com
woshimoming 于 2013-11-15 02:29:38发表:
顶起,感谢分享
sunchao6106 于 2013-11-14 18:04:54发表:
号鼎新
敖猪 于 2013-11-13 21:53:28发表:
嗯 挺好的
Growth兆 于 2013-11-13 09:49:44发表:
感谢小子要买房的分享,本贴加入到论坛的Linux分享贴中
cleeto 于 2013-11-13 08:46:36发表:
学习了