shell笔记01(运行shell脚本)

         当shell脚本以非交互的方式运行时,它会先查找环境变量ENV,该变量指定了一个环境变量(通常是.bashrc),然后从该环境变量文件开始执行,当读取了env文件后,shell才开始执行shell脚本的内容

环境变量

profile文件

        profile(/etc/profile),用于设置系统级的环境变量和启动程序,在这个文件下配置会对所有用户生效。

        当用户登录(login)时,文件会被执行,并从/etc/profile.d目录的配置文件中查找shell设置。一般不建议在/etc/profile文件中添加环境变量,因为在这个文件中添加的设置会对所有用户起作用。当必须添加时,我们可以按以下方式添加:添加一个HOST值为linuxprobe.com的环境变量:

        export HOST=linuxprobe.com

        添加时,可以在行尾使用;号,也可以不使用。一个变量名可以对应多个变量值,多个变量值需要使用:进行分隔。添加环境变量后,需要重新登录才能生效,也可以使用source命令强制立即生效:source /etc/profile 查看是否生效可以使用echo命令:

        $ echo $HOST

        linuxprobe.com

. bashrc文件

        bashrc文件用于配置函数或别名。bashrc文件有两种级别:

        系统级的位于/etc/bashrc、用户级的位于~/.bashrc,两者分别会对所有用户和当前用户生效。

        bashrc文件只会对指定的shell类型起作用,bashrc只会被bash shell调用。

bash_profile文件

        bash_profile只对单一用户有效,文件存储位于~/.bash_profile,该文件是一个用户级的设置,可以理解为某一个用户的profile目录下。这个文件同样也可以用于配置环境变量和启动程序,但只针对单个用户有效。和profile文件类似,bash_profile也会在用户登录(login)时生效,也可以用于设置环境变量。但与profile不同,bash_profile只会对当前用户生效。

shell脚本运行的三种方式:

      (1) bash script-name  或  sh script-name

            当前脚本文件本身没有可执行权限(文件X位为-号,或者文件开头没有指定解释器)

     (2) path/script-name   或  .  /script-name (当前路径下执行脚本)

            文件的脚本权限改为可执行(755)

     (3) source script-name 或 .script-name  

            类似于php中include,这篇shell的内容将作为所有父shell脚本 父进程中的一部分去运行。因此source或者. 可以将自身脚本中的变量或者函数返回值传递到父shell脚本中使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容