欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

LinuxShell——认识Shell脚本

程序员文章站 2022-04-28 20:29:09
LinuxShell——认识Shell脚本 摘要:本文主要介绍了Shell脚本的一些基本知识。 什么是Shell脚本 shell脚本是利用shell的功能所写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与指令写在里面,然后用正规表示法,管道命令以及数据流重导向等功能,达到所想要的处理 ......

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 ~]#