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: Alain M.
Subject: Re: [shell-script] Sudo + function?
Date: Mon, 19 Jan 2009 16:18:44 -0200
User-agent: Thunderbird 2.0.0.17 (X11/20080914)

Oi Leandro,

Obrigado, agora funcionou e ficou ao mesmo tempo prático e elegante.

É interessante como é o raciocínio em shell-script, primeiro você demora um tempão para entender o problema (o que eu já tinha feito) depois ainda é necessário encontrar uma solução, e dpois ainda, uma maneira de implementá-la.

Aqui um resumo da solução para poder arquivar:

Leandro Santiago escreveu:
Você deve declarar e executar a função dentro do subshell que o sudo
executará.

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

Eu uso isto para ter um ícone (pintado de vermelho) que abre uma janela (com fundo vermelho) e poder acessar rapidamente configurações da máquina.

Grato,
Alain


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ó...




reply via email to

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