Псевдонимы Bash не распознаются при первом входе в систему

Если вы предпочитаете циклы:

for i in {1..3}; do cat file1 >> file2; done
{ {1}}

[править]

как динамически задать значение n в цикле for в сценарии оболочки

поместить это в myCopyScript.sh

#!/bin/bash
for i in {1.. $3 }; do cat $1 >> $2; done

сделать это исполняемый файл

chmod u+x myCopyScript.sh

, затем назовите его так:

myCopyScript.sh file1 file2 4711
2
06.09.2016, 01:35
1 ответ

Когда bash запускает интерактивную оболочку login , он запускает первый найденный из следующих файлов: ~ / .bash_profile , ~ / .bash_login и ~ / .profile .

Напротив, ~ / .bashrc запускается только для интерактивных оболочек без входа в систему .

Решение - использовать исходный код ~ / .bashrc в любом из ~ / .bash_profile , ~ / .bash_login и ~ /. профиль , который вы действительно используете. Добавьте такую ​​строку:

if [[ $- = *i* ]]; then . ~/.bashrc; fi

Специальная переменная $ - содержит активные параметры оболочки, а интерактивные оболочки включают i в список активных параметров. Итак, это исходники ~ / .bashrc для интерактивных оболочек и только для интерактивных оболочек.

2
27.01.2020, 22:11

Теги

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