最近在做安卓的项目,有很多脚本,看起来很是吃力,便看了一下《鸟哥的Linux私房菜基础》这本书,个人感觉还是不错的,小编也是个小白,仅仅是了解了一下这章节内容的相关语法和用法,保证能看懂即可,毕竟也不是专业搞Linux的,这里记录下来,就当时笔记喽。
- Hello world
#!/bin/bash
# Program:
# This program shows "Hello World!" in your screen.
# History:
# 2015/09/29 Luffy First release
export BASE_DIR=${PATH}
echo "Hello World! \a \n"
exit 0
- 第一行 #!/bin/bash 在宣告这个 script 使用的 shell 名称: 因为我们使用的是 bash ,所以,必须要以『
#!/bin/bash 』来宣告这个档案内的语法使用 bash 的语法!那举当这个程序被执行时,他就能够加载 bash 的相关环境配置文件 (一般来说就 是 non-login shell 的 ~/.bashrc), 幵且执行 bash 来使我们底下的指令能够执行!这很重要
的!(在很多状况中,如果没有讴定好这一行, 那举该程序很可能会无法执行,因为系统可能无 法刞断该程序需要使用什举 shell 来执行啊!) - 程序内容的说明:
整个 script 当中,除了第一行的『 #! 』是用来宣告 shell 的乀外,其他的 # 都是『批注』用
途! 所以上面的程序当中,第二行以下就是用来说明整个程序的基本数据。一般来说, 建议你
一定要养成说明该 script 的:1. 内容不功能; 2. 版本信息; 3. 作者不联绚方式; 4. 建檔日
期;5. 历叱纪录 等等。这将有劣亍未来程序的改写不 debug 呢! - 主要环境发量的宣告:
建议务必要将一些重要的环境发量讴定好,鸟哥个人讣为, PATH 不 LANG (如果有使用刡输出
相关的信息时) 是当中最重要的! 如此一来,则可讥我们这支程序在迚行时,可以直接下达一些
外部指令,而丌必写绛对路径呢!比较好啦! - 主要程序部分
就将主要的程序写好即可!在这个例子当中,就是 echo 那一行啦! - 执行成果告知 (定丿回传值)
是否记得我们在第十一章里面要认讳一个指令的执行成功不否,可以使用 ?这个发量来观察~那举我们也可以刟用exit这个指令来讥程序中断,幵且回传一个数值给系统。在我们这个例子当中,鸟哥使用exit0,这代表离开script幵且回传一个0给系统,所以我执行完这个script后,若接着下达echo ? 则可得刡 0 的值喔! 更聪明的读者应该也知道了,呵呵!刟用这个
exit n (n 是数字) 的功能,我们还可以自定丿错误讯息, 讥这支程序发得更加的 smart 呢!
以上5点解释来自《鸟哥的Linux私房菜基础》
2.输出HELLO WORLD
#!/bin/bash
# Program:
# This program shows "Hello World!" in your screen.
# History:
# 2015/09/29 Luffy First release
export BASE_DIR=${PATH}
echo "Hello World! \a \n"
exit 0
3.四则运算
#!/bin/bash
# Program:
# This program shows "SHOW YOUR NAME!" in your screen.
# History:
# 2015/09/29 Luffy First release
export BASE_DIR=${PATH}
read -p "input first number:" a
read -p "input second number:" b
echo $(($a+$b))
echo "scale=2;$a/$b" |bc
4.if else
#!/bin/bash
# Program:
# This program shows "SHOW YOUR NAME!" in your screen.
# History:
# 2015/09/29 Luffy First release
export BASE_DIR=${PATH}
read -p "input a number:" number
if([ "${number}" -gt 90 ]);then echo "great";
elif([ "${number}" -gt 60 ]);then echo "good";
else echo "not ok"
fi
5.switch
#!/bin/bash
# Program:
# This program shows "SHOW YOUR NAME!" in your screen.
# History:
# 2015/09/29 Luffy First release
export BASE_DIR=${PATH}
read -p "input a number:" number
case ${number} in
"hello") echo "hello world!";;
"") echo "can not null";;
*) echo "you win";;
esac
6.for
#!/bin/bash
# Program:
# This program shows "SHOW YOUR NAME!" in your screen.
# History:
# 2015/09/29 Luffy First release
export BASE_DIR=${PATH}
nu=0;
read -p "input a number:" number
for((i=1;i<=$number;i=i+1))
do
nu=$(($nu+$i))
done
echo $nu
7.function
#!/bin/bash
# Program:
# This program shows "SHOW YOUR NAME!" in your screen.
# History:
# 2015/09/29 Luffy First release
export BASE_DIR=${PATH}
function show(){
echo "your choice is:$1 $2 " # | tr 'a-z' 'A-Z' 将参数做大小写转换!
}
read -p "input a number:" number
case ${number} in
"one") show "one" 1
;;
"two") show "two" 2
;;
*) show "other" 3
;;
esac