Yanıtlar:
Varsayılan olarak, etkileşimli olmayan bashyürütmeler .bashrc, --rcfileseçeneğinizin hedefi gibi başlatma dosyalarını yüklemez . manSayfada açıklandığı gibi :
An interactive shell is one started without non-option arguments and without
the -c option whose standard input and error are both connected to terminals
... or one started with the -i option.
Böylece bashetkileşimli bir kabuk gibi davranmaya zorlayarak istediğiniz davranışı elde edebilirsiniz -i:
bash --rcfile .mybashrc -ci 'echo $FOO'
bashkabuklar, içinde belirtilen dosyanın içeriğini yürütmelidir $BASH_ENV.
BASH_ENV: gibi alt mermi BASH_ENV=./testrc bash -c './test.sh'başlarsanız, o zaman rcfile kararsız sürece, iki kez yürütülür BASH_ENV.
#!başında bir shebang ( ) vardır test.sh, yani yazdığınız gibi emriniz iki kez bash'ı çağırıyor, ve böylece testrc iki kez kaynaklanıyor. Komutunuzu ya BASH_ENV=./testrc bash ./test.shda olarak değiştirmelisiniz BASH_ENV=./testrc ./test.sh.
BASH_ENVbaşlangıçta belirsizleşen ve daha sonra başka bir ortam değişkeni tarafından belirtilen hedefi sağlayan bir sarmalayıcı rc dosyasına sahip olmak .