shell脚本基础知识

shell脚本排错的方法:          

            通常我们编辑好shell脚本文件后不知道编辑的过程中是否出现了语法错误,可以通过命令

                            bash  -n   test.sh

   此指令不显示源代码,只会在程序出现语法错误的时候打印程序的语法错误信息。

  

            如果我们想要测试程序的是否存在语法错误的同时运行程序可以通过命令

                           bash  -v   test.sh

   此命令可以打印代码后,显示程序的语法错误信息,并执行程序。

 

            当程序不存在语法错误的时候,我们可以对程序进行追踪,看是否存在逻辑错误,此时可以使用命令

                           bash  -x test.sh

   此命令可以打印程序执行的过程。

shell脚本的执行原理:

            当登陆主机后,执行脚本之前,所处的环境已经是一个bash shell了,这个bash shell称为login shell,是我们执行shell脚本的父shell,执行的脚本会从父shell中fork   

  出一个子shell执行脚本,子shell脚本会继承父shell的环境变量。父shell和子shell一样都默认开启了三个文件:标准输入,标准输出,标准错误。同时子shell还可以开启子  

  shell,怎么知道当前的shell的层次呢?可以使用$SHLVL进行查看。可以通过exit退出当前的子shell回到父shell。

shell的启动配置文件:

          登陆主机时,login shell首先执行/etc/profile,接着检查用户的主目录中是否有.bash_profile,或者.bash_login,或.profile。若有,则会读取并执行其中的一个文件

   执行顺序为:1).bash_profile优先    2).bash_login   3).profile最后

          注销时,bash检查主目录中是否有.bash_logout。若有,则读取并执行它。

          执行新的shell时,分为两种情况。

                     1)执行交互式的shell:如直接执行bash,产生一个子shell。此时程序会读取并执行/etc/bash.bashrc,以及主目录下的.bashrc

                     2)执行shell脚本:它会检查BASH_ENV变量的内容,若该变量有定义,则执行该变量所定义的启动文件内容。如果BASH_ENV指向一个脚本文件,则首先执行

                           被指向的脚本,然后才执行当前要执行的shell脚本。

你可能感兴趣的:(linux)