Как я могу запустить новый терминал с помощью bash, но с пользовательским bashrc?

Поскольку вы знаете имя, которым нужно оперировать, почему бы не вынести его в переменную и не передать переменную в STDIN команды cut, что можно сделать таким образом в bash, ksh или zsh:

% dir='140905_M01771_0112_000000000-ABBYT'          

% cut -d_ -f3 <<<"$dir"                   
0112

Или если вы знаете, что в именах каталогов будет по крайней мере три _s и один -, то простая конструкция for над именами подойдет:

for dir in *_*_*_*-*; do cut -d_ -f3 <<<"$dir"; done
0
17.05.2019, 02:16
1 ответ

Согласно инструкции, переключатель --rcfileвыполняет задачу в интерактивном режиме.

--rcfile file

Execute commands from file instead of the standard personal initialization file ~/.bashrc if the shell is interactive

Кажется, мы можем сделать вывод, что переменная окружения BASH_ENVвыполняет то же самое в не -интерактивном режиме.

BASH_ENV

If this parameter is set when bash is executing a shell script, its value is interpreted as a filename containing commands to initialize the shell, as in ~/.bashrc. [...]

2
28.01.2020, 02:30

Теги

Похожие вопросы