Назначение макроса _LINUX_EXPORT_H

Я создал несколько функций на основе кода Github из других потоков. Вы можете поместить эти функции в свой файл ~ / .bashrc . Как видите, если вы вызовете create_random_profile :

  1. , он проверит и удалит любой предыдущий случайный профиль, который вы создали.
  2. Это создаст профиль случайного имени в терминалах gnome.
  3. Это имя будет установлено в переменной среды, которую вы можете использовать для изменения цвета в предопределенных функциях. См. Последнюю функцию setcolord .

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

function create_random_profile() {
    #delete previous profiles in case there were something
    #delete_one_random_profile
    prof="`mktemp -u HACK_PROFILE_XXXXXXXXXX`"
    gconftool-2 --set "/apps/gnome-terminal/profiles/$prof/use_theme_colors" --type bool false
    gconftool-2 --type list --list-type string --set $prof_list "`gconftool-2 --get $prof_list | sed "s/]/,$prof]/"`"
    file="`mktemp`"
    gconftool-2 --dump "/apps/gnome-terminal/profiles/Default" | sed "s,profiles/$2,profiles/$prof,g" > "$file"
    gconftool-2 --load "$file"
    gconftool-2 --type string --set "/apps/gnome-terminal/profiles/$prof/visible_name" "$prof"
    rm -f -- "$file"
    export __TERM_PROF=$prof
}

function delete_one_random_profile() {
    regular="HACK_PROFILE_"
    prof=$(gconftool-2 --get /apps/gnome-terminal/global/profile_list | sed -n "s/.*\(HACK_PROFILE_..........\).*/\1/p")
    if [ ! -z "$prof"]; then
        echo "size ${#prof}"
        echo "size of regular ${#regular}"
        echo "DO DELETE of $prof"
        #if not empty
        gconftool-2 --type list --list-type string --set $prof_list "`gconftool-2 --get $prof_list | sed "s/$prof//;s/\[,/[/;s/,,/,/;s/,]/]/"`"
        gconftool-2 --unset "/apps/gnome-terminal/profiles/$prof"
    else
        echo "NOTHING TO DELETE"
    fi
}

function setcolord() {
    echo "Dont forget to change to Profile0 in the menu of your terminal->Change Profile->Profile_0"
    gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/background_color" --type string white
    gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/foreground_color" --type string black
}

function setcolor_cyan() {
    echo "Dont forget to change to $__TERM_PROF in the menu of your terminal->Change Profile->Profile_0"
    gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/background_color" --type string "#8DCBCC"
    gconftool-2 --set "/apps/gnome-terminal/profiles/$__TERM_PROF/foreground_color" --type string black
}
2
03.03.2019, 03:26
1 ответ

Если вы внимательно посмотрите на файл, он начинается и заканчивается этими строками:

#ifndef _LINUX_EXPORT_H
#define _LINUX_EXPORT_H
...
#endif /* _LINUX_EXPORT_H */

Эти строки означают, что если файл включен дважды (либо из-за ошибки, либо из-за включения другого файла, который включает этот файл ), то определяется второе время вокруг значения, и, таким образом, весь файл эффективно пропускается.

Они широко известны как "защиты заголовков" или " включаемые защиты ", и вы заметите, что многие стандартные включаемые файлы используют этот шаблон; например pwd.hимеет

#ifndef _PWD_H
#define _PWD_H  1
2
27.01.2020, 22:08

Теги

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