bash always read ~/.bashrc even when invoked with --norc option bash-3.2.51-alt1 (sisyphus/x86_64). The same is true for 5.1 bash-3.2.48-alt3. due to this bug I can't get rid of bashisms in my scripts. $ sh -v -c 'echo hi' echo hi hi $ bash --norc --noprofile -v -c 'echo hi' # .bashrc # User specific aliases and functions [ ......................................] echo hi hi
Читаем 'man bash': > --norc > Не читает и не выполняет персональный файл инициализации > ~/.bashrc, если командный интерпретатор работает интерактивно. Эта опция > по умолчанию включена, если интерпретатор вызван как sh. Пробуем: > $ bash --norc --noprofile -v > bash-3.2$ либо > $ bash --noprofile -v > # .bashrc > # User specific aliases and functions > [ ......................................] > bash-3.2$ Всё ок. При запуске с ключом '-c ...' это не интерактивный режим.