環境:(產品,平台,機型,軟體版本,等)aix5l
問題描述: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 執行的
通常二者設定大致相同,所以通常前者會呼叫後者
crontab環境變數
crontab啟動shell指令碼的環境變數問題 環境 產品,平台,機型,軟體版本,等 aix5l 問題描述 crontab中啟動的shell指令碼不能正常執行,但是使用手動執行沒有問題,在 home profile中設定了指令碼所需要的環境變數。解答 cron命令的預設shell是 usr bin...
crontab 與 環境變數
手動在centos中執行sh指令碼,一切正常 將該sh加入crontab中任務計畫排程之後,完全沒有執行到的感覺啊!檢視crontab執行記錄日誌,cat var log cron 日誌中並沒有執行的記錄,說明計畫任務並沒有被排程執行。重新編輯計畫任務,crontab e,把錯誤輸出重定向,40 1...
環境變數 Vue 環境變數的使用
文章背景 開發過程中經常遇到這樣的問題 相同的 部署到不同環境時需要使用不同的變數 比如介面網域名稱變數 serve 在測試環境和生產環境使用的是不同的網域名稱。這種情況下如果在 裡定義變數,打包部署前再修改 切換成不同的值再打包不利於 的維護,也很繁瑣。這時候利用環境變數來實現,在不用每次打包前改...