shell快速学习指南(二)
2018-08-19 本文已影响0人
Bella2014
Shell 脚本的编写
我们可以直接在shell提示符下编写shell脚本,比如函数、控制语句等都可以直接在shell提示符下键入;shell能够检测出脚本是否结束,如果没有结束敲人回车键后shell会给出继续输入的提示符”>”。这个功能对于我们临时验证一些零碎的 命令特别方便。比如我们可以在shell下直接定义一个函数today(),然后调用它:
[me@linuxbox me]$ today() {
>echo -n "Today's date is: "
>date +"%A, %B %-d, %Y"
>}
[me@linuxbox me]$ today
Today's date is: Thursday, May 14, 2015
多条语句写在一行中间需要用分号隔开,这个和python的语法是一致的,python中有人建议每行一条语句,在这里shell个人也建议一行一条语句。
Shell 脚本的执行方式
有两种执行shell脚本的方式:
- 直接在Shell中将脚本作为可执行文件来执行,这时候shell会创建一个新的子进程来执行这个脚本;
- 通过“. ”或者 source命令来执行脚本,此时不要求脚本具有可执行属性;并且脚本是在当前Shell进程中执行;
下面是一个测试脚本test.sh:
#!/bin/bash
cd code
通过两种不同的执行方式,我们发现用第二种方式执行会改变当前Shell的环境变量$PWD,因为第二种执行方式是在当前Shell进程中执行的。我们还可以用这种方式在一个脚本中包含另一个脚本。
minico@ubuntu:~$ ./test.sh
minico@ubuntu:~$ pwd
/home/minico
minico@ubuntu:~$ . ./test.sh
minico@ubuntu:~/code$ pwd
/home/minico/code
minico@ubuntu:~$ source ./test.sh
minico@ubuntu:~/code$ pwd
/home/minico/code
Shell 脚本的执行和退出
Shell脚本会从第一条非函数指令开始执行,执行完最后一条指令后退出。为了养成较好的编程习惯,建议在脚本退出的地方使用exit 0或者exit 1来指示脚本的执行结果。