Ajuda - Shell [RESOLVIDO]

1. Ajuda - Shell [RESOLVIDO]

Simone de Cássia Santos
scassiasantos

(usa Ubuntu)

Enviado em 26/10/2016 - 22:38h

Desejo criar um código com 3 opções sendo:
1: Listar bkp (verificar se existe a pasta bkp e verificar o conteúdo interno)
2: Copiar arquivos ( verificar se existe a pasta bkp, se nao tiver criar e copiar)
3: Leitura de arquivos (listar o conteúdo, pedir nome do arquivo e abrir o o arquivo desejado).

Para isso criei uma pasta bkp dentro de root e declarei a variável "diretorio".
Segue o código abaixo que fiz, podem me ajudar? Estou travada no primeiro case.


#!/bin/bash
diretorio= /root/bkp
arquivo= /etc/network/interfaces
echo “Olá, $USER!”
echo “ Escolha uma opção: 1- Listar os backups, 2- Cópia de arquivos ou 3- Leitura de arquivos”
read opção
case $opcao in
1)
echo “:::LISTAR OS BACKUPS:::”
if [ cd/root/bkp = diretorio ]
then
echo “ A pasta backup já existe, seu conteúdo é `ls`”
2)
echo “:::CÓPIA DE ARQUIVOS:::”
3)
echo “:::LEITURA DE ARQUIVOS:::”
*)
echo “ Opção não encontrada!”
esac





  


2. Re: Ajuda - Shell [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 26/10/2016 - 23:29h

Que quer dizer if [ cd/root/bkp = diretorio ] ?

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: Ajuda - Shell [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 26/10/2016 - 23:33h

scassiasantos escreveu:

Desejo criar um código com 3 opções sendo:
1: Listar bkp (verificar se existe a pasta bkp e verificar o conteúdo interno)
2: Copiar arquivos ( verificar se existe a pasta bkp, se nao tiver criar e copiar)
3: Leitura de arquivos (listar o conteúdo, pedir nome do arquivo e abrir o o arquivo desejado).

Para isso criei uma pasta bkp dentro de root e declarei a variável "diretorio".
Segue o código abaixo que fiz, podem me ajudar? Estou travada no primeiro case.


#!/bin/bash
diretorio= /root/bkp
arquivo= /etc/network/interfaces
echo “Olá, $USER!”
echo “ Escolha uma opção: 1- Listar os backups, 2- Cópia de arquivos ou 3- Leitura de arquivos”
read opção
case $opcao in
1)
echo “:::LISTAR OS BACKUPS:::”
if [ cd/root/bkp = diretorio ]
then
echo “ A pasta backup já existe, seu conteúdo é `ls`”
2)
echo “:::CÓPIA DE ARQUIVOS:::”
3)
echo “:::LEITURA DE ARQUIVOS:::”
*)
echo “ Opção não encontrada!”
esac


Boa noite Simone.
Não entendi a OPÇãO 3....
Sendo que, a pasta "bkp" tem somente 01 ARQUIVO, perguntar o nome . . .

no aguardo,
Marcelo Oliver




4. Resposta

Simone de Cássia Santos
scassiasantos

(usa Ubuntu)

Enviado em 26/10/2016 - 23:38h

msoliver escreveu:

scassiasantos escreveu:

Desejo criar um código com 3 opções sendo:
1: Listar bkp (verificar se existe a pasta bkp e verificar o conteúdo interno)
2: Copiar arquivos ( verificar se existe a pasta bkp, se nao tiver criar e copiar)
3: Leitura de arquivos (listar o conteúdo, pedir nome do arquivo e abrir o o arquivo desejado).

Para isso criei uma pasta bkp dentro de root e declarei a variável "diretorio".
Segue o código abaixo que fiz, podem me ajudar? Estou travada no primeiro case.


#!/bin/bash
diretorio= /root/bkp
arquivo= /etc/network/interfaces
echo “Olá, $USER!”
echo “ Escolha uma opção: 1- Listar os backups, 2- Cópia de arquivos ou 3- Leitura de arquivos”
read opção
case $opcao in
1)
echo “:::LISTAR OS BACKUPS:::”
if [ cd/root/bkp = diretorio ]
then
echo “ A pasta backup já existe, seu conteúdo é `ls`”
2)
echo “:::CÓPIA DE ARQUIVOS:::”
3)
echo “:::LEITURA DE ARQUIVOS:::”
*)
echo “ Opção não encontrada!”
esac


Boa noite Simone.
Não entendi a OPÇãO 3....
Sendo que, a pasta "bkp" tem somente 01 ARQUIVO, perguntar o nome . . .

no aguardo,
Marcelo Oliver



Olá, Marcelo!

Coloquei mais algumas "ideias" do que acho que pode fazer parte do script. Pode me ajudar me orientando no que está no caminho certo?

#!/bin/bash
#Faça um script para backups das configurações:
## - Listar os backups:
# Irá verificar se tem a pasta backup
# Irá listar o conteúdo interno.
## - Cópia de arquivos
#Irá verificar se tem a pasta backup.
# Se não tiver irá criar e copiar.
# Se tiver irá copiar.
## - Leitura de arquivos
# Irá listar o conteúdo e pedir o nome do arquivo.
# Abrirá o arquivo desejado.
$diretorio="/root/bkp";
$arq= /etc/network/interfaces;
$interfaces
echo “Olá, $USER!”
echo “ Escolha uma opção: 1- Listar os backups, 2- Cópia de arquivos ou 3- Leitura de arquivos”
read opção
case $opcao in
1)
echo “:::LISTAR OS BACKUPS:::”
if [ -d $diretorio ]; then
echo "Diretório existente";
else
echo "Diretório não encontrado";
echo “ O conteúdo desse diretório é `ls -lt | grep "^d"`”
fi
2)
echo “:::CÓPIA DE ARQUIVOS:::”
if [ -d $diretorio ]; then
echo “`cp/etc/network/interfaces /root/backup/$interfaces`”;
3)
echo “:::LEITURA DE ARQUIVOS:::”
echo "Informe o nome do arquivo: " ; read arq
if [ -f $arq ]
then
echo "Arquivo existente `cat//etc/network/interfaces` "
else
echo "Arquivo não existente"
fi
*)
echo “ Opção não encontrada!”
esac

Em relação ao item 3 então acredito que o ideal seria somente pedir o nome do arquivo e caso seja diferente ele relate a mensagem "Arquivo não encontrado".

Obrigada.


5. Re: Ajuda - Shell

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/10/2016 - 00:19h

scassiasantos escreveu:

msoliver escreveu:

scassiasantos escreveu:

Desejo criar um código com 3 opções sendo:
1: Listar bkp (verificar se existe a pasta bkp e verificar o conteúdo interno)
2: Copiar arquivos ( verificar se existe a pasta bkp, se nao tiver criar e copiar)
3: Leitura de arquivos (listar o conteúdo, pedir nome do arquivo e abrir o o arquivo desejado).

Para isso criei uma pasta bkp dentro de root e declarei a variável "diretorio".
Segue o código abaixo que fiz, podem me ajudar? Estou travada no primeiro case.


#!/bin/bash
diretorio= /root/bkp
arquivo= /etc/network/interfaces
echo “Olá, $USER!”
echo “ Escolha uma opção: 1- Listar os backups, 2- Cópia de arquivos ou 3- Leitura de arquivos”
read opção
case $opcao in
1)
echo “:::LISTAR OS BACKUPS:::”
if [ cd/root/bkp = diretorio ]
then
echo “ A pasta backup já existe, seu conteúdo é `ls`”
2)
echo “:::CÓPIA DE ARQUIVOS:::”
3)
echo “:::LEITURA DE ARQUIVOS:::”
*)
echo “ Opção não encontrada!”
esac


Boa noite Simone.
Não entendi a OPÇãO 3....
Sendo que, a pasta "bkp" tem somente 01 ARQUIVO, perguntar o nome . . .

no aguardo,
Marcelo Oliver



Olá, Marcelo!

Coloquei mais algumas "ideias" do que acho que pode fazer parte do script. Pode me ajudar me orientando no que está no caminho certo?

#!/bin/bash
#Faça um script para backups das configurações:
## - Listar os backups:
# Irá verificar se tem a pasta backup
# Irá listar o conteúdo interno.
## - Cópia de arquivos
#Irá verificar se tem a pasta backup.
# Se não tiver irá criar e copiar.
# Se tiver irá copiar.
## - Leitura de arquivos
# Irá listar o conteúdo e pedir o nome do arquivo.
# Abrirá o arquivo desejado.
$diretorio="/root/bkp";
$arq= /etc/network/interfaces;
$interfaces
echo “Olá, $USER!”
echo “ Escolha uma opção: 1- Listar os backups, 2- Cópia de arquivos ou 3- Leitura de arquivos”
read opção
case $opcao in
1)
echo “:::LISTAR OS BACKUPS:::”
if [ -d $diretorio ]; then
echo "Diretório existente";
else
echo "Diretório não encontrado";
echo “ O conteúdo desse diretório é `ls -lt | grep "^d"`”
fi
2)
echo “:::CÓPIA DE ARQUIVOS:::”
if [ -d $diretorio ]; then
echo “`cp/etc/network/interfaces /root/backup/$interfaces`”;
3)
echo “:::LEITURA DE ARQUIVOS:::”
echo "Informe o nome do arquivo: " ; read arq
if [ -f $arq ]
then
echo "Arquivo existente `cat//etc/network/interfaces` "
else
echo "Arquivo não existente"
fi
*)
echo “ Opção não encontrada!”
esac

Em relação ao item 3 então acredito que o ideal seria somente pedir o nome do arquivo e caso seja diferente ele relate a mensagem "Arquivo não encontrado".
Obrigada.

=================================================
Simone, segue o script...

#!/bin/bash
DIR="bkp"
ARQ="/etc/network/interfaces"

EDUCADO() {
H=$(date +%H)
case $H in
0[4-9]|1[01])echo "${USER}, Bom Dia!" ;;
1[2-7] )echo ${USER}, Boa Tarde! ;;
1[89]|[20][0-3] )echo ${USER}, Boa Noite! ;;
esac
}

echo -e "\n $(EDUCADO)\n"
echo -e "\n Escolha uma opção:\n\n [1] Listar os backups\n [2] Cópia de Arquivo\n [3] Leitura de Arquivo\n"
read -p " Sua Escolha: " -n1 opcao
case $opcao in
1) echo -e "\n :::LISTAR OS BACKUPS::: \n"
if [ -e $DIR ];then
echo -e " A Pasta $DIR, existe. Seu conteúdo é:"
ls $DIR ; echo ""
else echo -e " A Pasta $DIR Não Existe\n" ; fi ;;
2) echo -e "\n\n :::CÓPIA de ARQUIVOS::: \n" ; [ -e $DIR ] || mkdir $DIR ; cp $ARQ $DIR ;;
3) echo -e "\n\n :::LEITURA DE ARQUIVOS:::\n Informe o NOME do Arquivo"
read -p " Arquivo: " ARQ01 ; echo ""
[ -e $DIR/$ARQ01 ] && cat $DIR/$ARQ01 || echo -e '\n Arquivo: '$ARQ01' Não Existe!\n' ;;
*) echo -e '\n\n OPÇãO INVáLIDA!\n' ;;
esac

OBS: A função EDUCADO, cumprimenta de acordo com a hora . . .

E não esqueça . . .
Se a RESPOSTA foi esclarecedora, marque-a como A MELHOR . . .

Att.:
Marcelo Oliver





6. Re: Ajuda - Shell [RESOLVIDO]

Simone de Cássia Santos
scassiasantos

(usa Ubuntu)

Enviado em 27/10/2016 - 21:00h

msoliver escreveu:

scassiasantos escreveu:

msoliver escreveu:

scassiasantos escreveu:

Desejo criar um código com 3 opções sendo:
1: Listar bkp (verificar se existe a pasta bkp e verificar o conteúdo interno)
2: Copiar arquivos ( verificar se existe a pasta bkp, se nao tiver criar e copiar)
3: Leitura de arquivos (listar o conteúdo, pedir nome do arquivo e abrir o o arquivo desejado).

Para isso criei uma pasta bkp dentro de root e declarei a variável "diretorio".
Segue o código abaixo que fiz, podem me ajudar? Estou travada no primeiro case.


#!/bin/bash
diretorio= /root/bkp
arquivo= /etc/network/interfaces
echo “Olá, $USER!”
echo “ Escolha uma opção: 1- Listar os backups, 2- Cópia de arquivos ou 3- Leitura de arquivos”
read opção
case $opcao in
1)
echo “:::LISTAR OS BACKUPS:::”
if [ cd/root/bkp = diretorio ]
then
echo “ A pasta backup já existe, seu conteúdo é `ls`”
2)
echo “:::CÓPIA DE ARQUIVOS:::”
3)
echo “:::LEITURA DE ARQUIVOS:::”
*)
echo “ Opção não encontrada!”
esac


Boa noite Simone.
Não entendi a OPÇãO 3....
Sendo que, a pasta "bkp" tem somente 01 ARQUIVO, perguntar o nome . . .

no aguardo,
Marcelo Oliver



Olá, Marcelo!

Coloquei mais algumas "ideias" do que acho que pode fazer parte do script. Pode me ajudar me orientando no que está no caminho certo?

#!/bin/bash
#Faça um script para backups das configurações:
## - Listar os backups:
# Irá verificar se tem a pasta backup
# Irá listar o conteúdo interno.
## - Cópia de arquivos
#Irá verificar se tem a pasta backup.
# Se não tiver irá criar e copiar.
# Se tiver irá copiar.
## - Leitura de arquivos
# Irá listar o conteúdo e pedir o nome do arquivo.
# Abrirá o arquivo desejado.
$diretorio="/root/bkp";
$arq= /etc/network/interfaces;
$interfaces
echo “Olá, $USER!”
echo “ Escolha uma opção: 1- Listar os backups, 2- Cópia de arquivos ou 3- Leitura de arquivos”
read opção
case $opcao in
1)
echo “:::LISTAR OS BACKUPS:::”
if [ -d $diretorio ]; then
echo "Diretório existente";
else
echo "Diretório não encontrado";
echo “ O conteúdo desse diretório é `ls -lt | grep "^d"`”
fi
2)
echo “:::CÓPIA DE ARQUIVOS:::”
if [ -d $diretorio ]; then
echo “`cp/etc/network/interfaces /root/backup/$interfaces`”;
3)
echo “:::LEITURA DE ARQUIVOS:::”
echo "Informe o nome do arquivo: " ; read arq
if [ -f $arq ]
then
echo "Arquivo existente `cat//etc/network/interfaces` "
else
echo "Arquivo não existente"
fi
*)
echo “ Opção não encontrada!”
esac

Em relação ao item 3 então acredito que o ideal seria somente pedir o nome do arquivo e caso seja diferente ele relate a mensagem "Arquivo não encontrado".
Obrigada.

=================================================
Simone, segue o script...

#!/bin/bash
DIR="bkp"
ARQ="/etc/network/interfaces"

EDUCADO() {
H=$(date +%H)
case $H in
0[4-9]|1[01])echo "${USER}, Bom Dia!" ;;
1[2-7] )echo ${USER}, Boa Tarde! ;;
1[89]|[20][0-3] )echo ${USER}, Boa Noite! ;;
esac
}

echo -e "\n $(EDUCADO)\n"
echo -e "\n Escolha uma opção:\n\n [1] Listar os backups\n [2] Cópia de Arquivo\n [3] Leitura de Arquivo\n"
read -p " Sua Escolha: " -n1 opcao
case $opcao in
1) echo -e "\n :::LISTAR OS BACKUPS::: \n"
if [ -e $DIR ];then
echo -e " A Pasta $DIR, existe. Seu conteúdo é:"
ls $DIR ; echo ""
else echo -e " A Pasta $DIR Não Existe\n" ; fi ;;
2) echo -e "\n\n :::CÓPIA de ARQUIVOS::: \n" ; [ -e $DIR ] || mkdir $DIR ; cp $ARQ $DIR ;;
3) echo -e "\n\n :::LEITURA DE ARQUIVOS:::\n Informe o NOME do Arquivo"
read -p " Arquivo: " ARQ01 ; echo ""
[ -e $DIR/$ARQ01 ] && cat $DIR/$ARQ01 || echo -e '\n Arquivo: '$ARQ01' Não Existe!\n' ;;
*) echo -e '\n\n OPÇãO INVáLIDA!\n' ;;
esac

OBS: A função EDUCADO, cumprimenta de acordo com a hora . . .

E não esqueça . . .
Se a RESPOSTA foi esclarecedora, marque-a como A MELHOR . . .

Att.:
Marcelo Oliver




Obrigada, Marcelo!
Vou comparar com o que fiz para compreender melhor!


7. Re: Ajuda - Shell [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 27/10/2016 - 22:01h

scassiasantos escreveu:

msoliver escreveu:
.
.
.

E não esqueça . . .
Se a RESPOSTA foi esclarecedora, marque-a como A MELHOR . . .

Att.:
Marcelo Oliver


Obrigada, Marcelo!
Vou comparar com o que fiz para compreender melhor!

==================================================
Boa noite Simone.
Marquei os erros do seu script, segue . . .
#!/bin/bash
$diretorio="/root/bkp" #ERRO #Se o script não será executado pelo root, Tem 02 ERROS...
$arq= /etc/network/interfaces # ERRO
$interfaces #ERRO
echo “Olá, $USER!”
echo “ Escolha uma opção: 1- Listar os backups, 2- Cópia de arquivos ou 3- Leitura de arquivos” # Tá certo, porém "feio", tudo na mesma linha . . .
read opção #ERRO
case $opcao in #ERRO na sintaxe do "case"
1)
echo “:::LISTAR OS BACKUPS:::”
if [ -d $diretorio ]; then
echo "Diretório existente";
else
echo "Diretório não encontrado";
echo “ O conteúdo desse diretório é `ls -lt | grep "^d"`” #Erro de lógica, se não existe, listar o que?
#ERRO no comando, a idéia não é listar o conteúdo do "diretório" # Para que o filtro???
fi
2)
echo “:::CÓPIA DE ARQUIVOS:::”
if [ -d $diretorio ]; then
echo “`cp/etc/network/interfaces /root/backup/$interfaces`”; #ERROS !!!
3)
echo “:::LEITURA DE ARQUIVOS:::”
echo "Informe o nome do arquivo: " ; read arq
if [ -f $arq ] #ERRO no TESTE
then
echo "Arquivo existente `cat//etc/network/interfaces` "
else
echo "Arquivo não existente"
fi
*)
echo “ Opção não encontrada!”
esac


Att.:
Marcelo Oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts