近来 写了个shell 的脚本,本来觉得是一个比较简单的小功能,却花费了我不少时间。
总结起来有这么几点特别值得注意:
1)课本中的说明 要看全,我曾经在linux shell的课本中看到有这么一条,赋值操作 其前后都不能有空白,可是我却没怎么记住,总是会犯类似的错误
直到我使用了函数,我才明白这一点,因为函数和变量两者是类型的 比如我定义一个变量 list=(1 2);然后我也定义了一个函数 listB(){ cmd;}
当我呀执行这个函数的时候 就会是 listB 根本看不出这个东东是变量还是 函数
2)今天试了好多次,在linux shell 下定义的变量,值貌似确定了之后就不能再改变了,今天试了很多次都这样,不过这个地方我觉得很奇怪。有高手可以帮我解析下
3)求取数组的最后一个:这个东东,我在网上开始搜索的时候,没有搜索到,等我写好了一个函数之后,突然又搜索到了 中间使用了# ,具体原因不记得了,可有高手帮忙解释下。
4)写shell 脚本的时候,一定要添加上注释,那个地方有问题,就把问题前后的关键节点都做好注释,这样绝对是事半功倍,可以一举数得。
5)还有就是,当你给shell 编写的函数的参数 赋值的时候,不要赋值数组,当你赋值数组的时候,其实是将整个数组都散列开,然后一个一个元素赋值的,当你在shell 编写的函数中读取 你传递的数组的时候,你就会发现其实只是一个 数值。如果你想把一个数组传递到函数中,可以这样处理,就是在原来输入数组的地方的前后都加上"",这样就可以让添加的数组作为一个元素传递给 shell ,这样在函数内部就可以进行单独处理了。
6)shell 对于错误的提示,不会太精确,因此 需要有意识的去摸索,以及从之前的 学习和经验中进行总结。