Não consigo entender este script

0

Alguém pode me ajudar a entender esse roteiro? É do sysconf_add e eu sou novo no script.
Eu preciso fazer algo parecido.

function add_word() {  
    local word=$1  
    local word_quoted=$2  
    if ! word_present; then  
        $debug && cp $file $tmpf  
        sed -i -e "${lineno} {   
            s/^[[:space:]]*\($var=\".*\)\(\".*\)/ $word_quoted/;   
            s/=\" /=\"/   
            }" $file  
        $debug && diff -u $tmpf $file  
    else  
        echo \"$word\" already present  
    fi  
    # some balancing for vim"s syntax highlighting  
}  
    
por Jim 22.10.2012 / 10:13

1 resposta

1

Este é um bom recurso para sed

Para o seu exemplo acima:

  • O sinalizador -i significa 'editar no local' (somente no GNU sed), isso está editando $file no local
  • A bandeira -e une vários comandos.
  • O primeiro comando do seu exemplo parece estar substituindo instâncias de $var="<stuff>" pelo segundo argumento passado para o script.
  • O segundo comando remove o espaço final após a sequência =" (por exemplo, foo=" bar " se tornaria foo="bar " )
por 22.10.2012 / 12:04