shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Sudo + function?


From: Leandro Santiago
Subject: Re: [shell-script] Sudo + function?
Date: Sat, 17 Jan 2009 15:41:44 -0200

Não não...
Você deve declarar e executar a função dentro do subshell que o sudo
executará.
Entenda a declaração e a execução como um só comando, que será passado como
argumento para o executável bash (suponho que seja o bash, não?).
O parâmetro -c do bash indica que você executará o parâmetro passado, no
caso os comandos de declaração e de execução.
Você poderia jogar estes comandos numa variável e depois passá-la para o
bash que será executado pelo sudo:

COMANDO="function rkonq()
{
  export KDEROOTHOME=/home/alain/.kde0
  konqueror --profile filemanagement
}
rkonq
"

E em seguida execute:
sudo bash -c "$COMANDO"

E... Ah sim, você deve proteger as variáveis que sejam utilizadas dentro da
função, por exemplo:

COMANDO="function rkonq()
{
  export KDEROOTHOME=/home/alain/.kde0
  echo \$KDEROOTHOME #cifrão protegido
}
rkonq
"
sudo bash -c "$COMANDO"


2009/1/17 Julio C. Neves <address@hidden>

>   Fala Alain
> até onde eu saiba, porém o bash é muito dinâmico e isso pode ter mudado,
> além do *builtin* declare, existem 2 formas de vc especificar uma função:
> function funcao
> {
> ...
> }
> ou:
> funcao ()
> {
> ...
> }
>
> Como vc
> fez:
> function funcao ()
> creio que seu erro está aí. Experimente tirar os parenteses ou o function.
> --
> Abração,
> Julio
> *Cursos de Shell e Zenity nos finais de semana:
> - Em SP ligue (11) 2125-4747;
> - Em DF ligue (61) 3223-3000;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988
> *
>
> 2009/1/17 Alain M. <address@hidden <alainm%40pobox.com>>
>
>
> > Tento este script:
> >
> > function rkonq()
> > {
> > export KDEROOTHOME=/home/alain/.kde0
> > konqueror --profile filemanagement
> > }
> > sudo rkonq
> >
> > Me retorna este erro:
> >
> > sudo: rkonq: command not found
> >
> > Como faço para chamar uma função com sudo???
> >
> > Grato,
> > Alain
> > PS: eu consegui fazer com dois scrips, um chamando o outro, mas gostaria
> > de fazer tudo com um script só...
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]