Dúvidas em 2 exercícios de shell script [RESOLVIDO]

1. Dúvidas em 2 exercícios de shell script [RESOLVIDO]

Guilherme Ferreira Schults
Schults

(usa Ubuntu)

Enviado em 22/01/2016 - 15:08h

Pessoal, boa tarde ! Não sou muito expert em shell script ainda mas ja consigo fazer alguns exercícios propostos pelo professor. Gostaria da ajuda de vocês, se puderem ajudar.
O primeiro exercicio é:

" Escreva um script que receba como parametro o caminho de um diretório e liste seus arquivos e diretorios um a um. Se for Diretório, deve escrever "(dir)" ao lado do diretório.

O segundo é:

" Elaborar um script que receba um nome de arquivo como parametro e verifique se esse arquivo existe. Em caso afirmativo, imprimir o seu tamanho em bytes"

São esses dois galera, fico agradecido se alguém puder me ajudar. Valeu !


  


2. Re: Dúvidas em 2 exercícios de shell script

Renan Arantes
R3nan

(usa Debian)

Enviado em 22/01/2016 - 16:42h

o segundo exercicio eu consegui fazer, mas o primeiro ainda to quebrando a cabeça aqui... vou pensar mais e ver se consigo, se alguem fizer posta ai pra gente ver... segue o segundo abaixo


#!/bin/bash
echo -n "informe no nome do arquivo: "
read arquivo
pesquisa=$(sudo find /home/ -iname $arquivo)
if [ -e "$pesquisa" ]; then
echo "localizado em: $pesquisa"
echo "Tamanho e: $(ls -l $pesquisa | awk '{print $5}') "
else
echo "nao localizei!!"
fi


editei aqui pra postar o exercicio 1 caraca apanhei mais aprendi mais uma, alias eu nao lembrava como usar substrings da hora segue o exercicio...


#!/bin/bash

echo -n "informe o caminho do diretorio: "
read diretorio

ls -l $diretorio | while read linha; do
if [ ${linha:0:1} = "d" ]; then
echo $linha | awk '{print $9 " (dir)"}'
else
echo $linha | awk '{print $9}'
fi
done




3. Tenta o primeiro assim:

Noobv3rN
Noobv3rN

(usa Arch Linux)

Enviado em 22/01/2016 - 16:51h

#!/bin/bash

_mainmenu(){
while :; do
clear
printf "$_headerline\n"
printf "Insert a path to list its files:\n"
printf "$_headerline\n"
read -p "[Example: /home/$USER]: " _cdir
printf "$_headerline\n"
if [ -d $_cdir ]; then
clear
cd $_cdir
printf "$_headerline\n"
printf "$_cdir (dir)\n"
printf "$_headerline\n"
tree -CAcv|more
elif [ -f $_cdir ]; then
clear
printf "File found instead of directory.\n"
else
clear
printf "No such file or directory\n"
fi
read -p "Try again? [Y|N]: " _pkey
case $_pkey in
n|N)
clear
break
esac
done
}
_headerline='================================'

_mainmenu



4. Re: Dúvidas em 2 exercícios de shell script

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/01/2016 - 18:49h

O primeiro exercicio >>>
#!/bin/bash

azul="\033[01;34m"
rescor="\e[0m"
rm /tmp/arq.txt &>/dev/null
if [[ -e "$@" ]]; then
ls -alh "$@" >> /tmp/arq.txt
else
echo -e "\nNão encontrado\n"
exit 0;
fi

while read line; do
DouA=$(echo "$line" | awk '{print $9}')
if [[ -d "$@/$DouA" ]]; then
echo -e ""$azul"dir - "$DouA""$rescor""
else
echo "arq - "$DouA""
fi
done < /tmp/arq.txt

O segundo exercicio >>>

#!/bin/bash
if [[ -f "$@" ]]; then
t=$(ls -lh "$@" | awk '{print $5}')
echo -e "\nO arquivo "\"$@\"" localizado, Tamanho "\"$t\""\n"
else
echo -e "\n Arquivo não existe ou é um diretório!\n"
fi
exit 0;


execute qualquer um dos dois assim: ./nome [arquivo]

o nome é o que vc der ao ao script, e o arquivo no caso é o parametro ok !

espero ter te ajudado!!!.


5. Obrigado

Guilherme Ferreira Schults
Schults

(usa Ubuntu)

Enviado em 24/01/2016 - 19:05h

Valeu galera, agradeço muito a atenção de vocês.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts