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 返回值变量
}
来源:CSDN
作者:只是一些暗恋而已
链接:https://blog.csdn.net/qq_30624591/article/details/104521158