The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
bash vs sh msb65 Programação Shell Script e 10 09-18-2008 03:25
bash e ksh: variável perdeu em loop no bash? Estienne Programação Shell Script e 2 08-25-2008 03:09
passar a variável de bash bash script de perl arsidh Programação Shell Script e 10 06-04-2008 01:25
Porque gerar "cinzas e bash" diferentes para a mesma saída bash script? s. murat Programação Shell Script e 0 05-26-2008 08:19
Bash sob AIX 5/3 taupin AIX 4 03-21-2008 06:03

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 10-12-2008
mindOnMy $ mindOnMy$ is offline
Usuário
  
 

Join Date: Oct 2008
Posts: 2
Question O que isso fazer em bash: $ (pid: -)

No meu entender, isso significa
se for pid
a) unset, ou
b) definida para nula
em seguida, substitua com o valor no lado direito do sinal - que é nula

Isso confunde-me porque
a) Eu pensei que se uma variável não está definido para algo que é automaticamente nulo. Se não, então o que é uma variável definida para leigos?
b) se a variável já está definido para zero, então por que substituí-la por outro nulo?

Eu vejo isso na linha 74 no arquivo / lib / LSB / init-funções (estou usando o Ubuntu Hardy Heron)
Aqui está um trecho do arquivo:

Código:
if [ -z "${pidfile:-}" ]; then 
    pidfile=/var/run/${1##*/}.pid 
fi

  #2 (permalink)  
Old 10-12-2008
jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Localização: NM
Mensagens: 5.789
O código é garantir que, se o pid é variável unset torna-se nula (ou de comprimento zero).
unset e nulos são diferentes. null significa que a variável exista na memória e é "", significa bash unset nunca ouvi falar disso antes.

Na codificação, whenver você cria uma nova variável que deseja configurá-lo para um estado conhecido. Em C você defina uma string para ser de comprimento zero, um inteiro de zero. Esta é a mesma idéia.
  #3 (permalink)  
Old 10-12-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderador ala Mode
  
 

Join Date: Feb 2007
Local: Innsbruck, Áustria
Mensagens: 1.886
Concedido, nulos e de comprimento zero são diferentes, mas o shell expande-los da mesma forma. Então, realmente não há nenhuma razão para o código como está. Poderia ser simplesmente:

Código:
if [ -z "$pidfile" ] ;then 
  # blah blah
fi

Há realmente uma maneira mais simples.

Código:
pidfile=${pidfile:-/var/run/${1##*/}.pid}

  #4 (permalink)  
Old 10-13-2008
mindOnMy $ mindOnMy$ is offline
Usuário
  
 

Join Date: Oct 2008
Posts: 2
ahh, eu vejo. agora tudo faz sentido. thnx!
Closed Thread

Marcadores

Tags
variável expansão programação bash

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 04:20.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0