shell脚本编程学习(一)

佐手、 提交于 2020-02-27 03:04:48

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言,在后续的博客当中,我会陆续介绍shell脚本的使用。这里是开始篇。

一、shell脚本的基本构成简介:

1、shell脚本通常包含如下部分:
首行
    第一行内容在脚本的首行左侧,表示脚本将要调用的shell解释器,内容如下:

#!/bin/bash

#!符号能够被内核识别成是一个脚本的开始,这一行必须位于脚本的首行,/bin/bash是bash程序的绝对路径,在这里表示后续的内容将通过bash程序解释执行。

注释
    注释符号# 放在需注释内容的前面

内容
    可执行内容和shell结构

Shell脚本的权限
一般情况下,默认创建的脚本是没有执行权限的。

没有权限不能执行,需要赋予可执行权限,例如给test.sh脚本赋可执行权限,可以使用以下语句。
chmod +x test.sh

Shell脚本的执行
1,输入脚本的绝对路径或相对路径
/root/helloWorld.sh

./helloWorld.sh

2,bash或sh +脚本
bash /root/helloWorld.sh
sh helloWorld.sh

注:当脚本没有x权限时,root和文件所有者通过该方式可以正常执行。

3,在脚本的路径前再加". " 或source
source /root/helloWorld.sh
./helloWorld.sh

区别:第一种和第二种会新开一个bash,不同bash中的变量无法共享。但是使用. ./脚本.sh 这种方式是在同一个shell里面执行的。

二、流程控制语句
if/else命令
  
1, 单分支if条件语句

if [ 条件判断式 ]

then

程序

fi

或者

if [ 条件判断式 ] ; then

程序

fi

  eg:#!/bin/sh

  if  [ -x  /etc/rc.d/init.d/httpd ]

      then

      /etc/rc.d/init.d/httpd restart

  fi

单分支条件语句需要注意几个点:

if语句使用fi结尾,和一般语言使用大括号结尾不同。

[ 条件判断式 ] 就是使用test命令判断,所以中括号和条件判断式之间必须有空格

then后面跟符号条件之后执行的程序,可以放在[]之后,用“;”分割,也可以换行写入,就不需要";"了。

2,多分支if条件语句

  if [ 条件判断式1 ]

      then

          当条件判断式1成立时,执行程序1

  elif  [ 条件判断式2 ] 

      then      

          当条件判断式2成立时,执行程序2

  ...省略更多条件

  else

      当所有条件都不成立时,最后执行此程序

  fi

三、自定义函数
  
函数代表着一个或一组命令的集合,表示一个功能模块,常用于模块化编程。

以下是关于函数的一些重要说明:

在shell中,函数必须先定义,再调用

使用return value来获取函数的返回值

函数在当前shell中执行,可以使用脚本中的变量。

函数的格式如下:

函数名()

{

命令1……

命令2….

return 返回值变量

}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!