• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

dario1133

shell script em linux

15 mensagens neste tópico

boa noite

como fazer um script para mostrar todos os ficheiros que existem numa pasta "pasta1" mas os ficheiros tem de ser do tipo ".txt" e tem de apresentar um numero no seu nome.. ex: ficheiro1.txt.....

alguma dica???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#!/bin/bash
ls "$1" | grep -e ".*[0-9].*\.txt"

Gravas como um ficheiro qualquer (p.e: listn) e depois é só fazer:

./listn nome_da_pasta

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o codigo nao ta a funcionar.. tipo se eu tiver a pasta /etc/ que contem varios ficheiros, eu quero que me apresente apenas os .txt e que contenham um numero no nome.. como faço??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se o script estiver na numa pasta /home/dario/scripts, por exemplo, fazes:

/home/dario/scripts/listn   /etc

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao sei se etendi.

será que fica assim...

#!/bin/bash

/home/desktop/documentos/etc ; ir até pasta etc

ls "$1" | grep -e ".*[0-9].*\.txt" ; procurar e mostrar todos os ficheiros do tipo txt com nº no seu nome

depois gravo este script (script.sh) e executo (. script.sh)

será que funciona?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, é suposto gravar no script o que te dei no meu primeiro post:

#!/bin/bash
ls "$1" | grep -e ".*[0-9].*\.txt"

E depois quando executas o script, passas-lhe a pasta:

./script.sh  /etc

Assim o mesmo script funciona para qualquer pasta que lhe passes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

na parte final ainda me faz confusão.

se eu guardar o script.sh no Desktop, e a minha pasta etc por exemplo ta nos meus documentos, ao executar o script faço:

./script.sh  /etc

ou

./script.sh  /Dektop/documentos/etc

no exemplo de cima tando eu no desktop ele consegue aceder a outras pasta se nao as que tao também no Desktop?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, ele consegue aceder a qualquer pasta, mas se a pasta está numa pasta do Desktop, tens que a indicar:

./script.sh /home/dario/Desktop/documentos/etc

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

na parte final ainda me faz confusão.

se eu guardar o script.sh no Desktop, e a minha pasta etc por exemplo ta nos meus documentos, ao executar o script faço:

./script.sh  /etc

ou

./script.sh  /Dektop/documentos/etc

no exemplo de cima tando eu no desktop ele consegue aceder a outras pasta se nao as que tao também no Desktop?

Se estiveres na pasta /home/dario/Desktop e o script estiver lá, podes escrever apenas

./script.sh /etc

se estiveres na pasta /etc terás que especificar a path do script

/home/dario/Desktop/script.sh /etc

Uma forma de contornares isso é colocares o script numa pasta que esteja na variável de ambiente $PATH.

Eu tenho uma pasta para scripts dentro da minha pasta de utilizador, depois no meu ficheiro .bashrc tenho isto no fim:

PATH=~/myscripts:$PATH

a partir daí para correr o script, basta escrever

script.sh /etc

e funcionará, estando tu na pasta que estiveres

EDIT:

icebrain, penso que ele se está a referir à pasta do sistema /etc e não a /home/dario/Desktop/documentos/etc

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tou na pasta /home/ubuntu/Desktop, e é aqui que tenho o meu script de nome 1.sh, o script é:

#!/bin/bash

ls "$1" | grep -e ".*[0-9].*\.txt"

quero aceder à pasta /etc que se encontra algures no sistema, se executar:

. 1.sh  /etc

assim consigo executar bem o meu programa??

eu ja experimentei assim e nao deu...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja experimentei nao da..

tenho o script (1.sh) no desktop

e se executar assim??:

./ 1.sh /etc/home/ubuntu/Desktop

????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A pasta etc é uma pasta que está debaixo da root (/), por isso a menos que tenhas lá criado as subpastas /home/ubuntu/Desktop, isso não vai funcionar.

Dá algum erro quando tentas executar como te dissemos?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja da pessoal brigado..

ao executar:

. 1.sh /etc/  # assim dá

./1.sh /etc/    # assim nao dá

brigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora