LinuxShell脚本——认识Shell脚本
摘要:本文主要介绍了Shell脚本的一些基本知识。
什么是Shell脚本
shell脚本是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,达到所想要的处理目的。
shell脚本就像早期dos年代的.bat,最简单的功能就是将许多指令汇整写一起,让使用者很容易地就能够一个操作执行多个命令,而shell脚本更是提供了数组、循环、条件以及逻辑判断等重要功能,让使用者可以直接以shell来写程序。
基本结构
#!/bin/bash
这句话的作用是标明我以下写的脚本使用的是BASH语法,只要写的是基于BASH的Shell脚本都应该这样开头。
在Linux中默认的Shell环境就是BASH,所以在Linux里面不加这一句也可以运行。如果把脚本放在默认环境不是BASH的环境中运行,又或者编写脚本的不是纯BASH语言,而是嵌入了其他语言,那么这个脚本就不能正确执行了。所以Shell脚本都必须以“#!/bin/bash”开头。
注释
在Shell脚本中,除“#!/bin/bash”这行外,其他行只要以“#”开头的都是注释。
程序的主体
Linux的命令可以直接在脚本中执行。
执行脚本
赋予执行权限,直接运行
这种方法是最常用的Shell脚本运行方法,也最为直接简单。就是赋予执行权限之后,直接运行。当然,运行时可以使用绝对路径,也可以使用相对路径。
如果将shell.sh放在PATH指定的目录内,这样就可以像Linux系统命令一样,不用指定路径直接运行了。
赋予执行权限:
1 [root@localhost sh]# chmod 755 shell.sh
使用绝对路径执行:
1 [root@localhost sh]# /root/sh/shell.sh
使用相对路径执行:
1 [root@localhost sh]# ./shell.sh
通过bash命令调用运行脚本
这种方法的意思是直接使用bash或者sh去解释脚本中的内容,所以这个脚本也可以正常运行。使用这种方法运行脚本,甚至不需要脚本文件有“执行”权限,只要拥有“读”权就可以运行了。
因为/bin/sh其实就是/bin/bash的一个链接,使用 sh shell.sh 就是告诉系统想要直接以bash的功能来执行shell.sh。
使用bash命令执行:
1 [root@localhost sh]# bash shell.sh 2 [root@localhost sh]# sh shell.sh
使用source命令执行
source命令或者“.”命令可以读入脚本并执行脚本,即在当前Shell环境中加载并执行的相关脚本文件的命令及语句,而不是产生一个子Shell来执行文件中的命令。
该命令主要用于让重新配置的环境变量配置文件强制生效。
使用source命令执行:
1 [root@localhost sh]# . shell.sh 2 [root@localhost sh]# source shell.sh
编写一个脚本并执行
编写脚本
使用vim命令创建并修改脚本文件:
1 [root@localhost ~]# vim test.sh
在vim编辑器里输入脚本内容并保存:
1 #!/bin/bash 2 echo "Hello World"
执行脚本
使用sh命令执行脚本:
1 [root@localhost ~]# sh test.sh 2 Hello Word 3 [root@localhost ~]#