Pessoal, eu tenho esse trecho de código que lista os aplicativos .deb instalados em uma máquina com Linux e guarda na vvariável deb
deb = os.popen(“comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n ‘s/^Package: //p’ | sort -u)”).read( ).strip( ).split( )
o problema é que quando eu tento usar essa lista no resto do código aparece essa mensagem:
/bin/sh: 1: Syntax error: “(” unexpected
Onde diz que acontece um erro de sintaxe por haver um “(” no trecho de código.
Tentei colocar "" antes dos parênteses e fica assim:
/bin/sh: 1: cannot open (apt-mark: No such file
sort: invalid option – ‘)’
Try ‘sort --help’ for more information.
/bin/sh: 1: cannot open (gzip: No such file
SE DESEJA DESINSTALAR MAIS DE UM APLICATIVO, DIGITE
CADA NÚMERO CORRESPONDENTE SEPARADO APENAS POR ESPAÇO
0 - VOLTAR
Dessa outra forma:
from subprocess import getoutput
deb = getoutput(“comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n ‘s/^Package: //p’ | sort -u)”).strip( ).split( )
Com "" antes dos parênteses e a saída fica assim:
[‘/bin/sh:’, ‘1:’, ‘cannot’, ‘open’, ‘(apt-mark:’, ‘No’, ‘such’, ‘file’, ‘sort:’, ‘invalid’, ‘option’, ‘–’, “‘)’”, ‘Try’, “'sort”, “–help’”, ‘for’, ‘more’, ‘information.’, ‘/bin/sh:’, ‘1:’, ‘cannot’, ‘open’, ‘(gzip:’, ‘No’, ‘such’, ‘file’]
SE DESEJA DESINSTALAR MAIS DE UM APLICATIVO, DIGITE
CADA NÚMERO CORRESPONDENTE SEPARADO APENAS POR ESPAÇO
1 - /bin/sh:
2 - 1:
3 - cannot
4 - open
5 - (apt-mark:
6 - No
7 - such
8 - file
9 - sort:
10 - invalid
11 - option
12 - –
13 - ‘)’
14 - Try
15 - ‘sort
16 - --help’
17 - for
18 - more
19 - information.
20 - /bin/sh:
21 - 1:
22 - cannot
23 - open
24 - (gzip:
25 - No
26 - such
27 - file
0 - VOLTAR
Como eu consigo resolver isso?