Shell non-interaktif, non-login akan mencoba sumber skrip apa pun yang ditentukan dalam $ BASH_ENV. Tetapi bagaimana saya menjamin $ BASH_ENV disetel sebelum pekerjaan cron atau skrip memiliki kesempatan untuk menetapkan $ BASH_ENV untuk sesi tertentu? Apakah satu-satunya pilihan untuk mengkompilasi Bash dengan hardcoded?
bash
environment-variables
Igorio
sumber
sumber
pam_env
. Atau cukup sumber$HOME/.env
di semua skrip Anda.Jawaban:
Jika Anda ingin semua skrip bash di crontab Anda dimuat
BASH_ENV
, atur di level crontab.Jika Anda ingin mengatur
BASH_ENV
hanya untuk entri tertentu, atur di sana. MakaBASH_ENV
tidak akan ditetapkan untuk kode yang tercantum dalam crontab itu sendiri, tetapi itu ide yang buruk untuk tetap membuat sesuatu yang rumit di sana.Jika Anda ingin skrip tertentu selalu memuat beberapa file konfigurasi, muat langsung dari dalam skrip.
sumber
export
ing$BASH_ENV
jika Anda hanya pengaturan untuk proses tunggal? AdilBASH_ENV=/path/to/startup.bash /path/to/bash_script
adalah cara yang masuk akal untuk melakukannya.BASH_ENV
hanya dibaca dalam shell non-interaktif , dan hanya jika shell itu bash (dan juga tidak dipanggil dengan namash
). Shell interaktif non-masuk tidak mencari$BASH_ENV
:Tidak ada file standar yang dijalankan di shell non-interaktif untuk pengguna. Anda harus mengaturnya dalam file yang terpisah lalu sumberkan:
Atau Anda dapat mengaturnya di beberapa file konfigurasi sistem seperti
/etc/environment
atau/etc/bashrc.bashrc
.sumber