Ну, невозможно узнать, о чем думал автор этого сценария. Но вот некоторые наблюдения:
awk
действительно говорит printf
, затем он печатает целочисленное значение второй строки в строке ввода. awk
— очень мощная программа. Вам почти никогда не нужно запускать его в комбинации с grep
, sed
или другим awk
. Так grep num_lines filename | awk '{ printf("%d", int($2)) }'можно написать
awk '/num_lines/ { printf("%d", int($2)) }' filename
int($2)
дает вам целую часть второй строки в строке ввода. Итак, если в файле конфигурации указано num_lines foo
, вы получите 0
. Если написано num_lines 3.14
, вы получите 3
. Маловероятно, что вам потребуется принимать такие меры предосторожности. с хорошо -сформированным конфигурационным файлом. printf("%d", int($2))— это излишество. Насколько я могу судить,
printf("%d", $2)и
print int($2)(почти )точно эквивалентны.
printf
не пишет новую строку в конце :$ echo "num_lines 42" | awk '{printf("%d", $2)}'; date 42Mon, May 13, 2019 12:00:00 AM $ echo "num_lines 42" | awk '{print int($2)}'; date 42 Mon, May 13, 2019 12:00:01 AMно это не совсем актуально, поскольку
`…`
удаляет завершающую новую строку. variable=valueты должен сказать
set variable=valueили
@ variable=exprКонечно, простая целочисленная константа допустима
expr
, . так что автор может просто использовать @
вместо set
потому что это короче, и они знают, что значение является целым числом. Таким образом, инструкция устанавливает переменную lines
к значению num_lines
из ../config.txt
.
Поскольку вы хотите выполнить очистку после tasksel
установки пакета, вам необходимо определить, что на самом деле произошло в результате этой установки, а это сильно зависит от контекста -. Однако есть журналы; если вы отметите /var/log/apt/history.log
, вы должны найти подробную информацию о том, что установлено tasksel
, и вы сможете использовать это для удаления всех пакетов, которые были установлены вместе с task-cinnamon-desktop
.
tasksel --task-packages cinnamon-desktop
перечисляет только task-cinnamon-desktop
, потому что это пакет, который устанавливает задача; все остальные пакеты являются зависимостями task-cinnamon-desktop
. Вы можете увидеть их, нажав на ссылку выше, или используя apt show
, apt-cache depends
, apt-rdepends
и т. д. Обратите внимание, что списки пакетов, которые вы найдете, используя этот подход, несколько теоретически :есть большое количество альтернативных зависимостей, и какой из них будет выбран, будет зависеть от того, какие другие пакеты уже установлены.
Заблаговременно , , т.е. до установки задачи, вы можете определить что будет установлено в данной системе, спросив apt
что она будет делать:
apt install -s task-cinnamon-desktop
(это работает без root ).
Чтобы определить, какие пакеты могут быть установлены, теоретически необходимо изучить дерево зависимостей. apt-rdepends
покажет вам максимальное дерево зависимостей, которое в данном случае не очень полезно. apt show
покажет вам зависимости каждого пакета; начиная сtask-cinnamon-desktop
:
$ apt show task-cinnamon-desktop
...
Depends: tasksel (= 3.53), task-desktop, cinnamon-desktop-environment
...
tasksel
неинтересно, но это показывает, что task-cinnamon-desktop
извлекает основной метапакет Cinnamon -cinnamon-desktop-environment
и общую настольную задачуtask-desktop
.
Продолжая предыдущее:
$ apt show cinnamon-desktop-environment
...
Depends: cinnamon-core (>= 3.8), eog, evince | pdf-viewer, firefox-esr | firefox | chromium | iceweasel | gnome-www-browser, fonts-liberation, fonts-noto, gedit, gnome-calculator | galculator, gnome-screenshot, gnome-terminal | x-terminal-emulator, icedove | thunderbird | evolution | geary, pidgin | empathy, totem | gnome-mplayer | vlc, xdg-user-dirs-gtk
Recommends: blueman, brasero | k3b, cheese, cups, gdebi, gedit-plugins, gimp, gnome-disk-utility, gnome-font-viewer, gnome-games, orca | gnome-orca, gnome-sound-recorder, gnome-system-monitor, gnote, gstreamer1.0-libav, gstreamer1.0-plugins-ugly, hexchat | xchat, inkscape, libreoffice-calc, libreoffice-gnome, libreoffice-impress, libreoffice-writer, mate-themes, rhythmbox, rhythmbox-plugin-cdrecorder, rhythmbox-plugins, shotwell | gnome-photos, simple-scan, sound-juicer, sound-theme-freedesktop, synaptic, system-config-printer, transmission-gtk | deluge, vinagre, vino, yelp, zenity
...
Окружение рабочего стола зависит от cinnamon-core
, eog
, средства просмотра PDF(evince
по умолчанию ), веб-браузера(firefox-esr
по умолчанию ), различных шрифтов, gedit
и т. д. также рекомендует ряд пакетов, которые будут установлены по умолчанию, но могут быть удалены без удаления метапакета -.