Менее конкретный ввод для скрипта

Краткое решение:

  1. в конфигурации Openbox (или другом диспетчере окон) назначьте имя для каждого рабочего стола (может потребоваться Перезапуск Openbox)
  2. в вашем tint2rc

.

# enable a text label widget that displays in the tint2 taskbar
taskbar_name = 1
# choose a color for the font that differs from the background 
taskbar_name_font_color = #0005ff 100

Более подробный рассказ:

Прочитав документацию / вики по tint2, я попытался сделать только taskbar_name = 1 . Но я не увидел ярлыка для рабочего стола.

К счастью, я обнаружил, что существует tint2conf приложение с графическим интерфейсом, которое показывает все параметры конфигурации tint2 и позволяет вам «применять» и «сохранять» изменения в вашем файле конфигурации tint2. Я много экспериментировал и в конце концов нашел что-то, что сработало.

  1. убедитесь, что у каждого рабочего стола / рабочего пространства есть строковое имя
    • в моем случае, я использую Openbox
    • , скопируйте файл конфигурации Openbox из места установки системы в $ HOME / .config / openbox / rc.xml и перейдите к элементу xml с именем , где вам нужно
    • перейти к и выбрать положительное значение N
    • перейдите к и создайте новый xml-элемент для каждого из N рабочих столов
    • , если нет <имя> для каждого рабочего стола -> тогда tint2 получит пустую строку и отобразит пустую строку -> тогда не сможет определить, на каком рабочем столе / рабочем пространстве вы находитесь (т.е. )
    • не забудьте перезапустить Openbox, прежде чем возиться с tint2
  2. отредактируйте конфигурацию tint2
    • при tint2 запускает копирование файла конфигурации tint2rc в домашний каталог пользователя по адресу: $ HOME / .config / tint2 / tint2rc
    • редактировать tint2rc -> перейти к разделу, начинающемуся с комментария # Панель задач -> убедитесь, что следующие пары ключ / значение включены рис

.

taskbar_name = 1
taskbar_name_font_color = #0005ff 100
  • перезапустите tint2 (я остановил процесс tint2 , а затем снова запустил его в фоновом режиме с помощью nohup )
  • проверьте визуально, вы можете увидеть имя рабочий стол, на котором вы находитесь
  • готов

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

Как только я выбрал цвет, в данном примере красный, который отличался от фона, я смог увидеть имя рабочего стола.

1
13.04.2017, 15:36
2 ответа

Во-первых, ваше предположение о том, что делает сценарий, кажется правильным. Он просматривает все файлы, папки, символические ссылки и т. Д., Которые он находит в $ 1 , если это файл, то он детализирует глубже, чтобы определить, является ли это библиотекой или исполняемым файлом.

В сценариях оболочки $ 1 является первым аргументом, переданным сценарию, поэтому для запуска этого сценария с $ ACTIVE_DB / rom / system в позиции $ 1 ] вы можете просто вызвать сценарий с помощью

./scriptname $ACTIVE_DB/rom/system

. Примечание. Если вы вызываете его из командной строки, то вместо действительного пути необходимо указать $ ACTIVE .

Чтобы заставить этот скрипт рекурсивно спускаться в ваш целевой каталог, вы можете попробовать добавить это в свой скрипт

while [ -n "$1" ]; do
    # use globbing to descend into all subdirectories
    for bin in $(find "$1" | tr '\n' ' '); do
    # change this  ^^^^   
        [ -f "$bin" ] || continue
        # leave the rest of the script as is
        # ....
2
27.01.2020, 23:36

Итак, если кому-то интересно, что я сделал, вот код на данный момент.
Спасибо @the_velour_fog за помощь.
Если кто-то считает, что это худшее из возможных решений
(я тоже не считаю его супер сексуальным, но оно делает то, что должно делать), напишите им сюда.

    while [ -n "$1" ]; do
    for bin in $(find "$1"); do
        [ -f "$bin" ] || continue
        case "$bin" in
            *.so)
                export start=$(date +"%T")
                printf "$bin:\t"
                echo -n "$start  " >>"$ACTIVE_DB/logs/parse_bin.log"
                echo "$bin" >>"$ACTIVE_DB/logs/parse_bin.log"
                "$FILE_DIR/perls/parse_bin.pl" "$bin" dbi:SQLite:dbname="$ACTIVE_DB/test.sqlite" 2>>"$ACTIVE_DB/logs/parse_bin.log"
                ;;
            *.jar)
                export start=$(date +"%T")
                printf "$bin:\t"
                echo -n "$start  " >>"$ACTIVE_DB/logs/parse_jar.log"
                echo "$bin" >>"$ACTIVE_DB/logs/parse_jar.log"
                "$FILE_DIR/perls/parse_jar.pl" "$bin" dbi:SQLite:dbname="$ACTIVE_DB/test.sqlite" 2>>"$ACTIVE_DB/logs/parse_jar.log"
                ;;
            *.apk)
                export start=$(date +"%T")
                printf "$bin:\t"
                echo -n "$start  " >>"$ACTIVE_DB/logs/parse_apk.log"
                echo "$bin" >>"$ACTIVE_DB/logs/parse_apk.log"
                "$FILE_DIR/perls/parse_apk.pl" "$bin" dbi:SQLite:dbname="$ACTIVE_DB/test.sqlite" 2>>"$ACTIVE_DB/logs/parse_apk.log"
                ;;
            *)
                if [ -x "$bin" ] ; then
                    export start=$(date +"%T")
                    printf "$bin:\t"
                    echo -n "$start  " >>"$ACTIVE_DB/logs/parse_bin.log"
                    echo "$bin" >>"$ACTIVE_DB/logs/parse_bin.log"
                    "$FILE_DIR/perls/parse_bin.pl" "$bin" dbi:SQLite:dbname="$ACTIVE_DB/test.sqlite" 2>>"$ACTIVE_DB/logs/parse_bin.log"
                else
                    continue
                fi
                ;;
        esac
    done
shift
done

Насколько я могу судить на данный момент, это работает, но я не уверен насчет этой части в конце

     *)
            if [ -x "$bin" ] ; then
                export start=$(date +"%T")
                printf "$bin:\t"
                echo -n "$start  " >>"$ACTIVE_DB/logs/parse_bin.log"
                echo "$bin" >>"$ACTIVE_DB/logs/parse_bin.log"
                "$FILE_DIR/perls/parse_bin.pl" "$bin" dbi:SQLite:dbname="$ACTIVE_DB/test.sqlite" 2>>"$ACTIVE_DB/logs/parse_bin.log"
            else
                continue
            fi

Будущее покажет^^

0
27.01.2020, 23:36

Теги

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