Script de shell para descobrir qual pacote fornece um arquivo no OpenBSD

0
# for i in 'pkg_info -q'; do pkg_info -L "$i" | grep ^/ | sed "s/^/$i/g" | perl -pe 's/\//\t\//'; done | grep tasklist.desktop
xfce4-panel-4.10.0p2    /usr/local/share/xfce4/panel/plugins/tasklist.desktop
# pkg_file() { for i in 'pkg_info -q'; do pkg_info -L "$i" | grep ^/ | sed "s/^/$i/g" | perl -pe 's/\//\t\//'; done | grep $1; } 
ksh: syntax error: '{' unexpected
# 

Q: o que está faltando? Eu só quero colocar no arquivo .profile, mas quando eu coloco a linha em uma função eu recebo o erro mostrado

    
por gasko peter 23.10.2013 / 07:39

2 respostas

1

Sua sintaxe de definição de função está errada - é foo() {} , não foo {} .

    
por 23.10.2013 / 07:44
2

Você também pode usar ferramentas existentes. O comando pkglocate do pacote pkglocatedb pode permitir que você pesquise todos os arquivos de qualquer pacote do OpenBSD, não importa se você o instalou ou não :

$ pkglocate /usr/local/share/xfce4/panel/plugins/tasklist.desktop
xfce4-panel-4.10.1:x11/xfce4/xfce4-panel:/usr/local/share/xfce4/panel/plugins/tasklist.desktop

Você pode pesquisar somente pacotes instalados com pkg_info (1) :

$ pkg_info -qE /usr/local/share/xfce4/panel/plugins/tasklist.desktop
xfce4-panel-4.10.1
    
por 30.12.2013 / 02:38