shell 初步

下面简单介绍一下Shell 编程。shell 中用户自定义函数。先举个小例子。

#!/bin/bash

work() {
    ans=`expr $1 + $2`
    return $ans
}

genStr() {
    ans="hello bash"
    return $ans
}
work 3 4
echo $?
genStr
echo $?

i=1
((b=$i+1)) # 这里的 b=2 这样可以给i加1
echo $i 
for i in `ls`
do
if [ $i = 'hello.sh' ]
then
   echo 'yes, exists'
fi
done
if [ -d "mysql" ] #判断当前目录下是否存在mysql 目录。
then
    echo "mysql dir exists"
fi
if [ ! -d "mysql" ] #如果当前目录下没有 mysql 目录,创建并给出提示。
then
    mkdir "mysql"
    echo "mysql dir has been created!"
fi

对上面这段代码,做如下说明。
1. shell 中的变量的定义和引用。定义的时候前面不用$,但是引用的时候在变量前要加上$。Shell中变量的赋值,=的左右是没有空格的,所以写shell的时候,空格不能随便加。
2. shell 中的函数,参数 => $0,$1,$2 就和命令行参数一样,在调用函数的时候,内部函数的返回值用$?来表示。调用函数的时候不需要加括号。只需要函数名,和参数。
3. 最后一个是shell中算数运算的例子,要用两队括号,当然,算数运算还可以实用expr 工具,见第一个函数内。
4. shell 中的 for 循环。注意do …. done 的格式。
5. shell 中的if 语句。注意 if 后面的 [] ,是后面至少要有一个空格,并且 [] 内的表达式应应该是有一个空格的, $i = ‘hello.sh’ 。接上面提到的 = 的用法,现在可以稍微总结一 下,= 两边没有空格表示 赋值运算, 两边又空格表示逻辑运算的相等。
6. 注意shell中的 if … then … fi 的格式。
7. shell 中是可以没有; 这个符号的,python 也有这一特点,有没有都一样,建议不加。
8. shell 中if语句还有很多中判断类型,比如判断字符串是否相等,判断是不是文件,判断有没有读写权限等等….

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章