Meu shell script ano pega [RESOLVIDO]

1. Meu shell script ano pega [RESOLVIDO]

Guilherme
gui-gui

(usa Arch Linux)

Enviado em 11/10/2010 - 17:14h

oi, eu fiz um shell script para compactar e descompactar arquivos (isso só pelo fato de aprender) mais ele nao compacta arquivos spo descompacta. alguem pode me falar onde errei e mostrar como q se faz?




#!/bin/bash
Principal () {
echo "Bem-Vindo"
echo "##########MENU##########"
echo "------------------------"
echo "1.Compactar Arquivos"
echo "2.Descompactar Arquivos"
echo
echo -n "Qual opçao desejada?"
read OPCAO
case $OPCAO in
1) Compactar ;;
2) Descompactar ;;
3) Exit;;
esac
}
Compactar () {
echo "---------TIPOS de Arquivos---------"
echo
echo "tar"
echo "tar.gz"
echo "tar.bz2"
echo -n "Qual Opeçao Deseja?"
read OPCAO
case $OPCAO in
1) Tar ;;
2) Tar.gz ;;
3) Tar.bz2 ;;
esac
}
Tar () {
echo "Escreva o Nome do arquivo a ser compactado."
read NOME
read ARQUIVO
tar -zcf $NOME $ARQUIVO1
}
Tar.gz () {
echo "Escreva o Nome do Arquivo a ser Compactado."
read NOME
read ARQUIVO1
read ARQUIVO2
read ARQUIVO3
tar -cf $NOME $ARQUIVO1 $ARQUIVO2 $ARQUIVO3 | gzip -9 $NOME
}
Tar.bz2 () {
echo "Escreva o Nome do Arquivo a ser compactado."
read NOME
read ARQUIVO1
read ARQUIVO2
read ARQUIVO3
tar -cf $NOME $ARQUIVO1 $ARQUIVO2 $ARQUIVO3 | bzip2 $NOME
}
Descompactar () {
echo "Bem-vindo ao menu 2"
echo
echo "rar"
echo "tar"
echo "tar.gz"
echo "tar.bz2"
echo -n "qual opçao deseja?"
read OPCAO
case $OPCAO in
1) Rar ;;
2) Tar ;;
3) Tar.gz ;;
4) Tar.bz2 ;;
esac
}
Rar () {
read NOME
unrar x $NOME
}
Tar () {
read NOME
tar -xvf $NOME
}
Tar.gz () {
read NOME
tar -vzxf $NOME
}
Tar.bz2 () {
read NOME
tar -jxvf $nome
}
Principal





  


2. MELHOR RESPOSTA

igor
igorbsp

(usa Slackware)

Enviado em 11/10/2010 - 21:39h

Se você obsevar seu script linha por linha você vai encontra algumas funções que se repetiram:
Tar.bz2 () {
Tar.gz () {
e
Tar.bz2 () {

Resolvendo isso e so diferenciar essas funções que se repetem:


#!/bin/bash
Principal () {
clear
echo "Bem-Vindo"
echo "##########MENU##########"
echo "------------------------"
echo "1.Compactar Arquivos"
echo "2.Descompactar Arquivos"
echo "0.Sair"
echo -n "Qual opçao desejada?"
read OPCAO
case $OPCAO in
1) Compactar ;;
2) Descompactar ;;
0) clear; exit;;
esac
}

Compactar () {
echo "---------TIPOS de Arquivos---------"
echo
echo "tar"
echo "tar.gz"
echo "tar.bz2"
echo "Qual Opeçao Deseja?"
read OPCAO2
case $OPCAO2 in
1) Tar_ ;;
2) Tar_gz ;;
3) Tar_bz2 ;;
esac
}


Tar_ () {
echo "Escreva o Nome do arquivo a ser compactado."
read NOME
echo "Adicione o diretorio a onde se encontra o arquivo:"
read ARQUIVO
echo "Adicione o diretorio a onde deseja salvar o arquivo compactado:"
read DIR
tar -zcf $DIR/$NOME.tar $ARQUIVO -P
echo arquivo compactado
}

Tar_gz () {
echo "Escreva o Nome do arquivo a ser compactado."
read NOME
echo "Adicione o diretorio a onde se encontra o arquivo:"
read ARQUIVO
echo "Adicione o diretorio a onde deseja salvar o arquivo compactado:"
read DIR
tar -zcvf $DIR/$NOME.tar.gz $ARQUIVO
echo arquivo compactado
}

Tar_bz2 () {
echo "Escreva o Nome do arquivo a ser compactado."
read NOME
echo "Adicione o diretorio a onde se encontra o arquivo:"
read ARQUIVO
echo "Adicione o diretorio a onde deseja salvar o arquivo compactado:"
read DIR
tar -jcvf $DIR/$NOME.bz2 $ARQUIVO
echo arquivo compactado
}

Descompactar () {
echo "Bem-vindo ao menu 2"
echo ""
echo "rar"
echo "tar"
echo "tar.gz"
echo "tar.bz2"
echo -n "qual opçao deseja?"
read OPCAO3
case $OPCAO3 in
1) Rar ;;
2) Tar ;;
3) Tar.gz ;;
4) Tar.bz2 ;;
esac
}


Rar () {
read NOME
unrar x $NOME
}

Tar () {
read NOME
tar -xvf $NOME
}

Tar.gz () {
read NOME
tar -vzxf $NOME
}

Tar.bz2 () {
read NOME
tar -jxvf $nome
}

Principal


3. Re: Meu shell script ano pega [RESOLVIDO]

igor
igorbsp

(usa Slackware)

Enviado em 11/10/2010 - 18:51h

Isso porque as opçoes tar, tar.gz ,tar.gz2 do comando case se repetem! Desta forma so uma das opções vão funcionar


4. hum

Guilherme
gui-gui

(usa Arch Linux)

Enviado em 11/10/2010 - 19:36h

como assim? só um vai pegar mais a opçao de descompactar esta normal, descupa mais nao ententi e como fasso para resolver?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts