初次接触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 哈哈

相关资讯