1. 程式人生 > >shell腳本執行及配置文件

shell腳本執行及配置文件

bash

linux之shell腳本執行及配置文件
  • bash腳本執行方法:

        1 解釋器直接運行
            /usr/bin/bash bash FOO.sh
        2 使用路徑運行腳本(需要有x權限)
            chmod +x FOO.sh
            /PATH/TO/FOO.sh
        3 使用.或source命令執行腳本
            . /PATH/TO/FOO.sh
            source /PATH/TO/FOO.sh
    
        1,2執行方法和3執行方法的區別:
            1,2:
                執行的解釋器為子程序,因此不會影響當前shell的變量.
            3:
                執行的解釋器為當前的shell程序,會讀取其中的變量並覆蓋為當前環境的變量.(一般用於設置默認變量)
  • bash的配置文件

        全局配置
            /etc/profile
            /etc/profile.d/*.sh
            /etc/bashrc
        個人配置
            ~/.bashrc
            ~/.bash_profile
            ~/.bash_logout
    
            profile系列文件:
                (1) 用於定義環境變量
                (2) 運行命令或腳本
    
            bashrc系列文件:
                (1) 定義命令別名和函數
                (2) 定義本地變量
    
            .bash_logout:
                用戶退出登錄之前執行的腳本
  • bash之交互式登錄與非交互式登錄

        交互式登錄和非交互式登錄區別:
            讀取的配置文件不同
    
        切換命令:
            su USERNAME  非交互式
            su - USERNAME 交互式登錄
    
        交互式登錄讀取配置文件順序:
            /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
        非交互式登錄讀取配置文件順序:
            /etc/bashrc --> ~/.bashrc --> /etc/profile.d/*.sh
    
        註意:
            交互式shell切換為非交互式shell時,首先繼承父shell的所有變量,再讀取對應配置文件中的變量並覆蓋已有變量.


  • 變量查改

        set
            set  列出當前shell中變量名及其值
        env
            env  列出當前shell中環境變量
        unset
            unset name     取消變量名
    
        $-  顯示set的啟用的功能
            # echo $-
            himBH
                h : 是否開啟hash
                i : 是否是交互式shell
                m : 是否開啟job控制
                B : 是否開啟{}的擴展功能
                C : 是否開啟覆蓋重定向功能
                H : 是否啟用history展開命令,並使用!等快捷方式調用


本文出自 “12064120” 博客,請務必保留此出處http://12074120.blog.51cto.com/12064120/1963915

shell腳本執行及配置文件