MacOS :Что представляют собой сценарии запуска оболочки для входа в систему и без входа в систему на Mac?

Использованиеawk:

awk '/aaa/ { count["aaa"]++ }
     /bbb/ { count["bbb"]++ }
     END { for (pat in count) print count[pat], pat }'  file

Это будет обновлять счетчик, связанный с совпадающим шаблоном, всякий раз, когда этот шаблон совпадает. В конце выводится список отсчетов и соответствующий шаблон.

0
08.07.2020, 07:05
1 ответ

Это (в основном )описано в разделе руководства Bash, посвященном файлам запуска .

Коротко:

  • /etc/profileисходит из оболочек входа в систему

  • Затем извлекается первый доступный из ~/.bash_profile, ~/.bash_loginи ~/.profile.

    По умолчанию в Ubuntu нет ~/.bash_profileили ~/.bash_login, поэтому используется источник ~/.profile. Ubuntu (хорошо, Debian)~/.profileисходники ~/.bashrc, когда оболочка bash:

    # if running bash
    if [ -n "$BASH_VERSION" ]; then
        # include.bashrc if it exists
        if [ -f "$HOME/.bashrc" ]; then
       . "$HOME/.bashrc"
        fi
    fi
    

    Но в целом это не так для ~/.profileв других дистрибутивах или операционных системах.

  • Debian (и, следовательно, Ubuntu )используют специальную опцию для включения источника /etc/bash.bashrc. Это не используется в macOS. Вместо этого, по крайней мере, в Каталине, /etc/profileисточники/etc/bashrc(очень похожи на Ubuntu~/.profile):

    # cat /etc/profile
    # System-wide.profile for sh(1)
    
    if [ -x /usr/libexec/path_helper ]; then
        eval `/usr/libexec/path_helper -s`
    fi
    
    if [ "${BASH-no}" != "no" ]; then
        [ -r /etc/bashrc ] &&. /etc/bashrc
    fi
    
2
18.03.2021, 23:21

Теги

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