在crontab中使用環境變數 環境:(產品,平台,機型,軟體版本,等)AIX5L www.2cto.com 問題描述:crontab中啟動的shell指令碼不能正常運行,但是使用手動執行沒有問題,在$home/.profile中設定了指令碼所需要的環境變數。 解答:cron命令的預設shell是/usr/bin/bsh,如果要在cron啟動的指令碼中使用ksh,就必須在指令碼中的第一行添加“#!/usr/bin/ksh”的聲明。 如果cron進程啟動的shell指令碼要用登入時的環境變數,就必須在cron啟動的shell指令碼中添加下面的內容,才能夠在啟動的指令碼中使用$home/.profile檔案中的環境變數。 . $home/.profile 這是因為cron進程執行的shell指令碼是不會自動載入使用者目錄下的.profile檔案,所以需要指令碼自己載入所需要的環境變數。================環境變數檔案載入順序/etc/profile: 此檔案為系統的每個使用者佈建環境資訊,當使用者第一次登入時,該檔案被執行.並從/etc/profile.d目錄的設定檔中搜集shell的設定.
/etc/bashrc: 為每一個運行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取. ~/.bash_profile: 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.
~/.bashrc: 該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該檔案被讀取.~/.bash_logout: 當每次退出系統(退出bash shell)時,執行該檔案. 另外,/etc/profile中設定的變數(全域)的可以作用於任何使用者,而~/.bashrc等中設定的變數(局部)只能繼承/etc/profile中的變數,他們是"父子"關係. ~/.bash_profile 是互動式、login 方式進入 bash 啟動並執行~/.bashrc 是互動式 non-login 方式進入 bash 啟動並執行通常二者設定大致相同,所以通常前者會調用後者。