ShellScript⼊门教程
和 Shell 的区别
Shell 是⼀个⽤ C 语⾔编写的程序,它是⽤户使⽤ Linux 的桥梁。
Shell 即是⼀种命令语⾔,⼜是⼀种程序设计语⾔。
Shell 是指⼀种应⽤程序,这个应⽤程序提供了⼀些命令,⽤户可以通过这些命令去访问操作系统内核的服务。
Ken Thompson 的 sh 是第⼀种 Unix Shell,Windows Explorer 是⼀个典型的 Shell。
Shell 脚本,是⼀种为 Shell 编写的脚本程序,类似 Windows 的 bat 脚本,区别在于 bat 是⽤于操作 Windows 操作系统,⽽ Shell 脚本⽤于操作 Linux 系统。
脚本的编程环境
⽂本编辑器
能解释执⾏的脚本解释器
常见的解释器有:
shell代码Bourne Shell (/usr/bin/sh 或 /bin/sh)
Bourne Again Shell (/bin/bash)
C Shell (/usr/bin/csh)
K Shell (/usr/bin/ksh)
Shell for Root (/sbin/sh)
……
⼀般使⽤ Bash,也就是 Bourne Again Shell,Bash 也是⼤多数 Linux 系统默认的 Shell。
Shell Script 开头的 #! 告诉系统解释此脚本⽂件的 Shell 程序路径,例如下⾯的 Shell Scirpt 执⾏路径为 /bin/bash
#!/bin/bash
第⼀个 Shell Script
打开⽂本编辑器(可以使⽤ vi/vim 或是 vs code 来编写),新建⼀个⽂件 test.sh,扩展名为 sh (sh 代表 shell),扩展名并不影响脚本执⾏。
#!/bin/bash
echo "Hello World !"
#! 是⼀个约定的标记,它告诉系统这个脚本需要什么解释器来执⾏,即使⽤哪⼀种 Shell。
echo 命令⽤于向窗⼝输出⽂本。
运⾏ Shell Script 有两种⽅法:
1. 作为可执⾏程序
将上⾯的代码保存为 test.sh,并 cd 到相应⽬录:
chmod +x ./test.sh
./test.sh
注意,⼀定要写成 ./test.sh,⽽不是 test.sh,运⾏其它⼆进制的程序也⼀样,直接写 test.sh,linux 系统会去 PATH ⾥寻有没有叫 test.sh 的,⽽只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH ⾥,你的当前⽬录通常不在 PATH ⾥,所以写成 test.sh 是会不到命令的,要⽤
./test.sh 告诉系统说,就在当前⽬录。
2. 作为解释器参数
/bin/sh test.sh
这种⽅式运⾏的脚本,不需要在脚本中的第⼀⾏指定解释器信息
运⾏效果如下图: