Получите два списка из двух переменных и объедините их в одну переменную.
Предположим, вы echo "$var1"
получите этот вывод:
a
b
c
d
Предположим, вы echo $var2
получите этот вывод:
1
2
3
4
Я хочу, чтобы $var3
имел такой точный вывод:
a 1
b 2
c 3
d 4
Как вы это делаете? И если вы спрашиваете, зачем мне это нужно, когда вы назначаете переменной команду или несколько команд, первая команда должна начинаться и заканчиваться, тогда вторая команда должна начинаться и заканчиваться так, чтобы varx=(command1 && command2)
давал:
a
b
c
d
1
2
3
4
Также это должно быть выполнено без ввода или вывода файла. Я забыл добавить, не думайте, что списки stati c. Фактически, предположим обратное, списки являются динамическими c. То есть одна команда генерирует один список, а другая - другой. Так что отчасти проблема заключается в том, что выходные данные синхронизируются c, особенно с программным обеспечением с ошибками в скриптах, например, apt. Это немного сбивает с толку, потому что и apt, aptitude и apt-rdepends могут показывать пакеты и rdepends (кроме, возможно, aptitude). У них все разные скорости и уровни глючности, причем самые глючные. Было бы неплохо иметь функцию для проверки скорости программы (какая из 3 наиболее быстро показывает пакеты или зависимости). В любом случае, я обошел проблему, используя одну программу для извлечения зависимостей (поэтому создайте список stati c), а другую - для отображения имени и размера пакета. До того, как я пытался перечислять rdepends и показывать одновременно, но с разными командами, что приводило ко всевозможным забавным проблемам, включая syn c :) Я знаю, посмотрите, как это было глупо.
Как и было обещано здесь это сценарий (1-й был предметом этого вопроса):
RPEPENDS версия
ps -A &>> Distro1Analysis.txt && sudo service --status-all &>> Distro1Analysis.txt && \
for z in $(dpkg -l | awk '/^[hi]i/{print $2}' | grep -v '^lib'); do \
printf "\n$z:" && \
aptitude show $z | grep -E 'Uncompressed Size' && \
result=$(apt-rdepends 2>/dev/null $z | grep -v "Depends")
final=$(apt show 2>/dev/null $result | grep -E "Package|Installed-Size" | sed "/APT/d;s/Installed-Size: //");
if [[ (${#final} -le 700) ]]; then echo $final; else :; fi done &>> Distro1Analysis.txt
DEPENDS
ps -A &>> Distro1Analysis.txt && sudo service --status-all &>> Distro1Analysis.txt && \
for z in $(dpkg -l | awk '/^[hi]i/{print $2}' | grep -v '^lib'); do \
printf "\n$z:" && \
aptitude show $z | grep -E 'Uncompressed Size' && \
printf "\n" && \
apt show 2>/dev/null $(aptitude search '!~i?reverse-depends("^'$z'$")' -F "%p" | \
sed 's/:i386$//') | grep -E 'Package|Installed-Size' | sed '/APT/d;s/^.*Package:/\t&/;N;s/\n/ /'; done &>> Distro1Analysis.txt
Оба сценария работают, однако могут быть написаны более четко и оптимизированы, чтобы работать намного быстрее. Однако оба сценария учат все же. Кроме того, хотя я исправил сценарии, чтобы они работали, чтобы сохранить компактность, я решил не помещать в два списка, как первоначально искали; из-за того, как команды изначально выводили результат.