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
Ajuda stardard teclado como substituir insumos por argumentos em tempo de execução de um script Dingrong UNIX para Dummies Perguntas & Respostas 6 10-14-2008 04:46
Ajuda na passagem array de insumos para C programa utilizando script? ahjiefreak Programação Shell Script e 1 03-20-2008 07:36
Passando argumentos para um script em branco rm-r UNIX & avançada para usuários experientes 7 01-08-2008 08:56
Shell script com argumentos sankar6254 Programação Shell Script e 3 12-22-2003 09:21
Passando argumentos para um script Kevin Pryke Programação Shell Script e 3 06-14-2002 10:06

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 11-17-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Usuário
  
 

Join Date: Nov 2008
Localização: diversos
Lugares: 188
Question utilizar vários factores como argumentos no meu script

Oi lá,
É muito difícil para mim explicar o meu problema porque estou affraid Eu não estou usando o vocabulário correto. Então deixe-me descrever a situação. Eu escrevi um script que tem um argumento. Funciona assim:

Código:
~$ cat /usr/local/bin/squote
echo "$@" | sed 's/'\''/'\''\\'\'\''/g; s/.*/'\''&'\''/g'
~$ squote It\'s great
'It'\''s great'

O que eu preciso fazer se eu quiser que o meu script para funcionar na seguinte situação?

Código:
~$ echo It\'s great | squote
''
~$ cat file | squote
''
~$ squote < file
''

Thanks in advance
Santiago

Atualização:
Agora, eu achei que eu possa ler a partir de / dev / stdin. Eu escrevi o seguinte script:

Código:
~$ cat /usr/local/bin/squote
cat /dev/stdin | sed 's/'\''/'\''\\'\'\''/g; s/.*/'\''&'\''/g'
echo "$@" | sed 's/'\''/'\''\\'\'\''/g; s/.*/'\''&'\''/g'
~$ echo It\'s great | squote
'It'\''s great'
''
~$ squote It\'s great
# I need to press Ctrl+D
'It'\''s great'

Como posso saber de que introduziu o argumento é que vem?

Última edição por chebarbudo; em 11/17/2008 10:15.. Motivo: encontrado parte da resposta
  #2 (permalink)  
Old 11-18-2008
Christoph Spohr Christoph Spohr is offline
Usuário
  
 

Join Date: Sep 2008
Lugares: 205
Você pode testar se o script foi chamado com um argumento:

[[-Z "$ @"]] & & printf "Nenhuma entrada \ n" | | printf "Input: q% \ n" "$ @"

O que significa: se o comprimento dos argumentos ($ @) é zero (-z), em seguida, imprima "Nenhuma entrada" senão imprimir o texto no formulário escapou. Não não, o que se pretende alcançar, mas se você tentar escapar cordas, marque a opção de printf q%.

Se você chamar o testscript desta forma:

testscript "h m's"

ele irá dar-lhe:

Entrada: h \ 's \ m
  #3 (permalink)  
Old 11-22-2008
chebarbudo's Avatar
chebarbudo chebarbudo is offline
Usuário
  
 

Join Date: Nov 2008
Localização: diversos
Lugares: 188
Christoph Thx,
Embora printf é uma função muito melhor para o meu script, você não responder a todos para o meu problema. O que eu preciso é uma maneira de fazer o script funcionar na seguinte situação:

Código:
~# cat /usr/local/bin/squote
[[ -z "$@" ]] && printf "No input\n" || printf "Input: %q\n" "$@"
~# echo "h's m" | squote
No input

Closed Thread

Marcadores

Tags
argumentos, input

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 06:49.


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