iredmail安装脚本深入分析(一)---iRedmail.sh

来源:http://www.boundlesssupremacy.com 作者:win7 人气:77 发布时间:2019-08-31
摘要:iredmail安装脚本深入分析(一)---iRedmail.sh,iredmail安装和陈设 iredmail是一套以postfix为骨干的重组邮件系统的装置脚本,能够达到规定的标准赶快安排邮件服务器的目标。为了让投机不遗

iredmail安装脚本深入分析(一)---iRedmail.sh,iredmail安装和陈设


iredmail是一套以postfix为骨干的重组邮件系统的装置脚本,能够达到规定的标准赶快安排邮件服务器的目标。为了让投机不遗忘shell的语法,所以闲来无事,学习一下他的代码。

本身从官方网址下载她的摩登版,解压后,结构如下:

iRedMail.sh  是发端安装的起步文件,试行bash iRedMail.sh 后就开头设置,我们从那几个文件看起。

tmprootdir="$(dirname $0)"

 

dirname的用法是:

 

(1)  带全路径的,例:[email protected]:~> dirname /home/aguo/insert.sql 
         /home/aguo #获得文件所在目录

 

(2)  仅仅是文件名的,例:[email protected]:~> dirname Environment 

         .   表示路线就是当前目录

$0 在shell中的意思是当前施行脚本的称谓 $() 在shell中起到命令替换的效能,那样tmprootdir的值就为当下执行脚本的目录,在上边要对此目录举行判别

二个命令涉及了3个知识点,看来学习大概能加深圳影业公司像的。

第四个指令如下:

echo ${tmprootdir} | grep '^/' >/dev/null 2>&1

 

| 管道符 ,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

 

grep ‘^/’  查找以/开头的,grep的正则表达式用法

 

>/dev/null 2>&1  :

 

可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到

 

1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"

 

2 表示stderr标准错误

 

& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

 

很多shell脚本里都会用到,实际作用就是不让输出任何内容

其一命令的完全成效正是为着寻觅变量tmprootdir的值中以/先导的,上面会依靠状态码进行判别

if [ X"$?" == X"0" ]; then
    export ROOTDIR="${tmprootdir}"
else
    export ROOTDIR="$(pwd)"
fi

 

 

 

export  export命令可以用来设置或显示环境变量。在shell中,当一个变量创建时,只会在当前的shell中有 效,之后创建的子进程不会有该变量。而命令export可以将一个shell变量变成环境变量,在随后创建的子进程中也能访问到该环境变量,但是子进程在 修改了环境变量的值之后,父进程并不能知道,因为子进程将复制父进程的环境变量。因此,当shell退出时,那些在该shell中export出来的环境 变量也会消失。

 

这样的话,接下来的脚本中,ROOTDIR的值就会保留下来

 

[ X"$?" == X"0" ]  中的X 是为着防守$?为空的情事下,而进行的,不过网络资料很少涉及 $?  实行命令后赶回的境况,成功为 0 失利为别的值 if else 判定语句   依据$?的问号的值,来判断脚本的相对路线  那么些论断是对准多系统的,有的系统里获得的dirname里或许会有相对路线的值,所以echo ${tmprootdir} | grep '^/' >/dev/null 2>&1,假诺有值的话,就能够间接剖断脚本的相对路线;假设没值的话,就用pwd重新获得。

明确了本子所在的体系的绝对路线后,后边就能够对有的函数库和全局变量举行调用了,接下去的代码:

cd ${ROOTDIR}

export CONF_DIR="${ROOTDIR}/conf"
export FUNCTIONS_DIR="${ROOTDIR}/functions"
export DIALOG_DIR="${ROOTDIR}/dialog"
export PKG_DIR="${ROOTDIR}/pkgs/pkgs"
export PKG_MISC_DIR="${ROOTDIR}/pkgs/misc"
export SAMPLE_DIR="${ROOTDIR}/samples"
export PATCH_DIR="${ROOTDIR}/patches"
export TOOLS_DIR="${ROOTDIR}/tools"

. ${CONF_DIR}/global
. ${CONF_DIR}/core

主干包涵了系统以往要用到的具备配置文件和实际的变量文件,global是大局的变量文件  core是核心文件,后边会一而再解析,从语法看没什么难的,独有. 要求解释一下

.   ${CONF_DIHaval}/global  那样就把里面的变量大概函数都引进到了剧本的运行中,前边赶过现实的变量再做深入分析。

 

 

iredmail是一套以postfix为主干的组合邮件系统的装置脚本,能够达到规定的标准飞速布置邮件服...

iredmail安装脚本深入分析(一)---iRedmail.sh

iredmail是一套以postfix为大旨的结合邮件系统的安装脚本,能够到达火速布署邮件服务器的目标。为了让协和不遗忘shell的语法,所以闲来无事,学习一下她的代码。

 

本身从官方网站下载她的流行版,解压后,结构如下:

图片 1

 

iRedMail.sh  是初始设置的启航文件,实践bash iRedMail.sh 后就从头安装,咱们从那么些文件看起。

 

 

tmprootdir="$(dirname $0)"

 

dirname的用法是:

 

(1)  带全路径的,例:[email protected]:~> dirname /home/aguo/insert.sql 

         /home/aguo #获得文件所在目录

 

(2)  仅仅是文件名的,例:[email protected]:~> dirname Environment 

         .   表示路线便是当前目录

 

$0 在shell中的意思是近些日子施行脚本的称谓

 

$() 在shell中起到命令替换的机能,那样tmprootdir的值就为近些日子实施脚本的目录,在底下要对此目录举办判断

一个限令涉及了3个知识点,看来学习或许能强化影象的。

 

其次个指令如下:

 

 

echo ${tmprootdir} | grep '^/' >/dev/null 2>&1

 

| 管道符 ,管道符侧边命令的输出就能够作为管道符左边命令的输入。三番五次使用管道意味着第贰个指令的输出会作为 第4个指令的输入,第一个指令的出口又会作为第三个指令的输入,由此及彼。

 

grep ‘^/’  查找以/起首的,grep的正则表明式用法

 

>/dev/null 2>&1  :

 

能够将/dev/null看作"黑洞". 它不行等价于二个只写文件. 全部写入它的从头到尾的经过都社长久错失. 而品尝从它那儿读取内容则什么也读不到

 

1 表示stdout标准输出,系统暗中认可值是1,所以">/dev/null"等同于"1>/dev/null"

 

2 表示stderr标准错误

 

& 代表一致的意味,2>&1,表示2的输出重定向等同于1

 

众多shell脚本里都会用到,实际意义正是不让输出任何内容

 

本条命令的完全作用正是为着寻觅变量tmprootdir的值中以/初步的,上边会依附状态码举行判别

 

 

if [ X"$?" == X"0" ]; then

    export ROOTDIR="${tmprootdir}"

else

    export ROOTDIR="$(pwd)"

fi

 

 

 

export  export命令能够用来安装或出示遇到变量。在shell中,当一个变量创建时,只会在此时此刻的shell中有 效,之后创建的子进度不会有该变量。而命令export能够将一个shell变量产生境遇变量,在跟着创办的子进度中也能访谈到该境况变量,可是子进度在 修改了遭受变量的值之后,父进程并无法明白,因为子进度将复制父进度的蒙受变量。由此,当shell退出时,那多少个在该shell中export出来的环境变量也会熄灭。

 

那样的话,接下去的台本中,ROOTDI奥迪Q5的值就可以保留下来

 

[ X"$?" == X"0" ]  中的X 是为着防守$?为空的境况下,而设置的,然则英特网资料比非常少涉及

$?  实践命令后回到的场所,成功为 0 失败为别的值

if else 判定语句   依照$?的问号的值,来判断脚本的断然路线 

其一论断是对准多系统的,有的系统里获得的dirname里大概会有相对路线的值,所以echo ${tmprootdir} | grep '^/' >/dev/null 2>&1,如果有值的话,就足以直接判别脚本的相对路线;要是没值的话,就用pwd重新得到。

 

鲜明了本子所在的系统的相对路线后,后边就可以对有个别函数库和全局变量举办调用了,接下去的代码:

cd ${ROOTDIR}

export CONF_DIR="${ROOTDIR}/conf"
export FUNCTIONS_DIR="${ROOTDIR}/functions"
export DIALOG_DIR="${ROOTDIR}/dialog"
export PKG_DIR="${ROOTDIR}/pkgs/pkgs"
export PKG_MISC_DIR="${ROOTDIR}/pkgs/misc"
export SAMPLE_DIR="${ROOTDIR}/samples"
export PATCH_DIR="${ROOTDIR}/patches"
export TOOLS_DIR="${ROOTDIR}/tools"

. ${CONF_DIR}/global
. ${CONF_DIR}/core

 

 

宗旨富含了系统之后要用到的享有配置文件和现实性的变量文件,global是大局的变量文件  core是焦点文件,前面会一连深入分析,从语法看没什么难的,唯有. 须要解释一下

 

.   ${CONF_DI揽胜}/global  那样就把内部的变量可能函数都引进到了剧本的运行中,后边高出现实的变量再做剖析。

iredmail是一套以postfix为宗旨的咬合邮件系统的设置脚本,可以直达急忙安顿邮件服务器的目标。为了...

本文由2020欧洲杯官方投注-2020欧洲杯官方投注网址发布于win7,转载请注明出处:iredmail安装脚本深入分析(一)---iRedmail.sh

关键词: 欧洲杯赌球 2020欧洲杯足球

最火资讯