как конвертировать МБ в BYTE с помощью bash / awk

Это сложно: да и нет.

Да, это возможно, если настроить определенную переменную, которая находится в исходном коде переключателя рабочего пространства Cinnamon. Нет, потому что это не работает должным образом.

Время переключения жестко запрограммировано

Единственная подсказка о времени переключения рабочего пространства была найдена в репозитории GitHub, где хранятся исходные коды Cinnamon. Этот комментарий от автора в конце 2013 года был ключом к разгадке.

[...] есть жестко запрограммированная 0,25-секундная анимация для переключения рабочих пространств при включении эффектов.

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

Путь к каталогу / usr / share / cinnamon / js / ui / для Cinnamon в Linux Mint, установленном на локальном компьютере. В каталоге есть два файла, которые кажутся важными.

  1. workspace.js со строкой const FOCUS_ANIMATION_TIME = 0,15;
  2. workspacesView.js со строкой const WORKSPACE_SWITCH_TIME = 0,25;

по сравнению с «0,25 секунды "комментарий, соответствующий файл, скорее всего, workspacesView.js совпадает со значением 0,25 , используемым в файле. Другая строка с 0,15 с тех пор была полностью удалена.

Ручная настройка в Cinnamon

Cinnamon основан на GTK + 3, что похоже на то, как работает GNOME 3. Это означает, что некоторые исходные коды написаны на JavaScript. Переключатель рабочего пространства Cinnamon - один из них. Исходный код, написанный на JavaScript, не требует компиляции для запуска, поэтому любые внесенные изменения могут быть применены немедленно.

Четыре простых шага для внесения изменений:

  1. Откройте файл JavaScript в текстовом редакторе с правами root или sudo.

  2. Измените постоянное значение на большее значение для более медленной анимации, наоборот.

  3. Сохраните файл.

  4. Перезапустите Cinnamon (нажмите Alt + F2 , затем нажмите R , затем Enter ).

Наконец, пользователь может протестировать и наблюдать за изменениями, внесенными в анимацию.

Не работает должным образом

Время переключения рабочего пространства : файл JavaScript - workspacesView.js , а значение константы изменено с 0,25 на 3,25 или любое значение по выбору. Но это, похоже, не работает: я не заметил никакой разницы, независимо от использования сочетаний клавиш или использования апплета переключения рабочего пространства.

У меня есть доказательство, которое сработало для меня, а именно изменение продолжительности анимации для шкалы переключения с сочетанием клавиш Ctrl + Alt + вниз ключи.

// Time for initial animation going into Overview mode
const ANIMATION_TIME = 0.25;

Переключить масштабное время : файл JavaScript - это overview.js , и значение константы изменяется с 0,25 на 3,25 аналогичным образом. На этот раз четыре простых шага приведут к успешной более длительной анимации шкалы переключения. В 3.25 секунд я наблюдал результат в замедленной съемке.

Если бы внесенные изменения прошли успешно, то наверняка заметили бы.

Заявление об ограничении ответственности : в этом ответе предполагается, что пользователь включил эффекты рабочего стола в Cinnamon. Перейдите в Системные настройки> Внешний вид - Эффекты . Найдите «Включить эффекты» или аналогичный параметр и убедитесь, что он включен или отмечен флажком.

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

Протестировано с Cinnamon 2.2 в Linux Mint 17 (Qiana) и Cinnamon 3.8 в Linux Mint Debian Edition 3 (Cindy). Пока не работает должным образом.

-5
15.09.2018, 22:32
3 ответа

Умножить на 1024 дважды (или на 1048576 один раз ).


Вbash(или любойsh-оболочке):$(( 10 * 1024*1024 ))

С переменной:

s=10
m=$(( s * 1024*1024 ))

Чтобы получить конкретный вывод, который вы показываете:

for s in 10 100; do
    printf '%-3d --> %d\n' "$s" "$(( s * 1024*1024 ))"
done

Вawk:10 * 1024*1024

Чтение мегабайт из стандартного ввода (одностолбцового ввода )и печать соответствующего количества байтов:

{ print $1 * 1024*1024 }

Чтобы получить определенный вывод, который вы показываете:

printf '10\n100\n' | awk '{ printf("%-3d --> %d\n", $1, $1 * 1024*1024) }'
1
28.01.2020, 05:21

Альтернативно, с numfmtот GNU coreutils:

printf '10\n100\n' | numfmt --from-unit=Mi
10485760
104857600
3
28.01.2020, 05:21

эхо "10|100|1000" | awk -F"|" '{ gsub ("10", "10 --> 10485760" ); gsub ("100", "100 --> 104857600" ); gsub ("1000", "1000 --> 1048576000" ); напечатать }'

-4
28.01.2020, 05:21

Теги

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