Direcionar para os diretórios

1. Direcionar para os diretórios

Bruno Gustavo Budag
brunobudag

(usa CentOS)

Enviado em 16/04/2013 - 23:51h

Colegas preciso de uma ajuda, elaborei um script onde irá gerar na tela opções e o usuário escolhe o que quer fazer, porém a intenção é direciona-lo aos diretórios que irei criar, vamos lá então visto que o símbolo "#" irei deixar para que vocês me ajudem qual comando inserir e as demais etapas foi um teste que fiz para ver se estava tudo funcionando.

echo "Insira seu Nome"
read nome
clear

echo "Bem vindo" "$nome" "Para qual diretorio voce gostaria de ir:"

echo "1 - binarios"
echo "2 - arquivos instalados"
echo "3 - arquivos de configuracao do site"
echo "4 - arquivo dos scripts"

read opcoes

if [ "$opcoes" = "1" ]
then
########################
fi

if [ "$opcoes" = "2" ]
then
echo "voce quer ir para os arquivos instalados muito bem" "$nome"
fi

if [ "$opcoes" = "3" ]
then
echo "voce quer ir para os arquivos do site muito bem" "$nome"
fi

if [ "$opcoes" = "4" ]
then
echo "voce quer ir nos arquivos do script muito bem" "$nome"
fi



  


2. Re: Direcionar para os diretórios

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 17/04/2013 - 15:22h

brunobudag escreveu:

Colegas preciso de uma ajuda, elaborei um script onde irá gerar na tela opções e o usuário escolhe o que quer fazer, porém a intenção é direciona-lo aos diretórios que irei criar, vamos lá então visto que o símbolo "#" irei deixar para que vocês me ajudem qual comando inserir e as demais etapas foi um teste que fiz para ver se estava tudo funcionando.

echo "Insira seu Nome"
read nome
clear

echo "Bem vindo" "$nome" "Para qual diretorio voce gostaria de ir:"

echo "1 - binarios"
echo "2 - arquivos instalados"
echo "3 - arquivos de configuracao do site"
echo "4 - arquivo dos scripts"

read opcoes

if [ "$opcoes" = "1" ]
then
########################
fi

if [ "$opcoes" = "2" ]
then
echo "voce quer ir para os arquivos instalados muito bem" "$nome"
fi

if [ "$opcoes" = "3" ]
then
echo "voce quer ir para os arquivos do site muito bem" "$nome"
fi

if [ "$opcoes" = "4" ]
then
echo "voce quer ir nos arquivos do script muito bem" "$nome"
fi




Vamos lá, em primeiro lugar eu retirei os "if" e inseri um "case", pois o código fica mais legível e curto


#!/bin/bash

echo "Insira seu Nome"
read nome
clear

echo -e "
Bem vindo $nome. Para qual diretorio voce gostaria de ir:

1 - binarios
2 - arquivos instalados
3 - arquivos de configuracao do site
4 - arquivo dos scripts

Digite apenas uma opcao (1 a 4):
"
read opcao

case $opcao in

1)

echo "voce quer ir para os ...."

;;
2)

echo "voce quer ir para os ...."

;;
3)

echo "voce quer ir para os ...."

;;
*)

echo "Digite apenas as opcoes de 1 a 4"

;;
esac



Agora resta vc acertar o seu "case" com as opções que deseja, se necessitar executar algum comando no case, basta inseri-lo dentro da opção.


3. Re: Direcionar para os diretórios

Bruno Gustavo Budag
brunobudag

(usa CentOS)

Enviado em 17/04/2013 - 21:16h

Agradeço a ajuda porém a intenção é que ao digitar alguma opção do 1 ao 4 automaticamente eu entre no diretório.

Isto irá facilitar o usuário não digitar o comando, então no caso quando ele selecionar a opção 1 o meu script deveria fazer o comando cd /etc...


4. Re: Direcionar para os diretórios

Perfil removido
removido

(usa Nenhuma)

Enviado em 17/04/2013 - 22:44h

Há como fazer com array.
Ficaria mais ou menos:

opcao[1]="binarios"
opcao[2]="arquivos instalados"
opcao[3]="arquivos de configuracao do site"
opcao[4]="arquivo dos scripts"

echo "digite opcao (1-4)"; read op;

echo "opcao escolhida eh ${opcao[$op]}.";



Inclusive é possível colocar comandos em um array e executar conforme o número.

comando[1]="..."
comando[2]="..."
comando[3]="..."

$(${comando[$op]});



Nota: Arrays começam com índice [0] mas esse valor pode ser omitido prá não complicar nas opções com operações aritméticas.


5. Re: Direcionar para os diretórios

Bruno Gustavo Budag
brunobudag

(usa CentOS)

Enviado em 17/04/2013 - 23:54h

Tá quase, mas vasculhando o google não acho sintaxe nem nada que me faça entrar no diretório após escolher a opção, abaixo segue como ficou:

echo "Insira seu Nome"
read nome
clear

echo "Bem vindo" "nome" "Para qual diretorio voce gostaria de ir:"

echo "1 - binarios"
echo "2 - arquivos instalados"
echo "3 - arquivos de configuracao do site"
echo "4 - arquivo dos scripts"


opcao[1]="/bin"

opcao[2]="/etc"

opcao[3]="cd /var/www/html"

opcao[4]="cd/home/bruno/Documents/Scripts"



echo "digite opcao (1-4)"; read op;

echo "opcao escolhida eh ${opcao[$op]}.";

Porém nesta ultima linha deveria ser algo que me faça ir ao diretório e não apenas mostrar na tela


6. Re: Direcionar para os diretórios

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/04/2013 - 05:25h

brunobudag escreveu:

opcao[1]="/bin"

opcao[2]="/etc"

opcao[3]="cd /var/www/html"

opcao[4]="cd/home/bruno/Documents/Scripts"



echo "digite opcao (1-4)"; read op;

echo "opcao escolhida eh ${opcao[$op]}.";

Porém nesta ultima linha deveria ser algo que me faça ir ao diretório e não apenas mostrar na tela


Então deve ser isto:

cd "${opcao[$op]}"; 


Atenção nos valores do array.

Se op=1, então ele compreende

cd "/bin"; 


Se op=4, então ele compreende

cd "cd/home/bruno/Documents/Scripts"; 


Veja se é isso que deseja.

*** EDIT ***

Syntax error.


7. Re: Direcionar para os diretórios

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 18/04/2013 - 12:18h

brunobudag escreveu:

Agradeço a ajuda porém a intenção é que ao digitar alguma opção do 1 ao 4 automaticamente eu entre no diretório.

Isto irá facilitar o usuário não digitar o comando, então no caso quando ele selecionar a opção 1 o meu script deveria fazer o comando cd /etc...


O que te passei está exatamente da forma que vc pediu, basta vc editar o script com as opções que vc deseja dentro do "case", por ex:


case $opcao in

1)

cd /var/www/html


;;
2)

cd /bin

;;
3)

cd /etc/

;;
*)

echo "Digite apenas as opcoes de 1 a 4"

;;
esac


E fora que tem um alerta ao usuário, caso digite uma opção inválida!


8. Re: Direcionar para os diretórios

Bruno Gustavo Budag
brunobudag

(usa CentOS)

Enviado em 19/04/2013 - 00:12h

Meu script não funcionou nenhuma das 2 maneiras, segue abaixo como eu deixei porém sem sucesso, já tentei outras maneiras mas fazer com que ele faça eu entrar no diretório ta complicado.

echo "Insira seu Nome"
read nome
clear

echo -e "
Bem vindo" $nome Para qual diretorio voce gostaria de ir:

1 - binarios
2 - arquivos instalados
3 - arquivos de configuracao do site
4 - arquivo dos scripts

read opcao

case $opcao in

1)

cd /var/www/html


;;

2)

cd /bin


;;

3)

cd /etc/


;;

*)


Digite apenas as opcoes de 1 a 4

;;

esac


Ao rodar me gera a seguinte tela:

Bem vindo brunbudag Para qual diretorio voce gostaria de ir:
./scriptando: line 8: 1: command not found
./scriptando: line 9: 2: command not found
./scriptando: line 10: 3: command not found
./scriptando: line 11: 4: command not found



9. Re: Direcionar para os diretórios

Bruno Gustavo Budag
brunobudag

(usa CentOS)

Enviado em 19/04/2013 - 00:35h

Segundo script sem solução:

echo "Insira seu Nome
read nome
echo "Bem vindo" $nome "Para qual diretorio voce gostaria de ir:"
clear

echo "1 - binarios"
echo "2 - arquivos instalados"
echo "3 - arquivos de configuracao do site"
echo "4 - arquivo dos scripts"


opcao[1]=cd "/bin";

opcao[2]=cd "/etc";

opcao[3]=cd "/var/www/html";

opcao[4]=cd "/home/bruno/Documents/Scripts";

echo "digite opcao (1-4)"; read op;

cd "${opcao[$op]}";


Ao rodar seguinte erro:

./scriptando2: line 20: syntax error near unexpected token `('
./scriptando2: line 20: `echo "digite opcao (1-4)"; read op;'


10. Re: Direcionar para os diretórios

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/04/2013 - 01:11h

brunobudag escreveu:

Segundo script sem solução:

echo "Insira seu Nome
read nome
echo "Bem vindo" $nome "Para qual diretorio voce gostaria de ir:"
clear

echo "1 - binarios"
echo "2 - arquivos instalados"
echo "3 - arquivos de configuracao do site"
echo "4 - arquivo dos scripts"


opcao[1]=cd "/bin";

opcao[2]=cd "/etc";

opcao[3]=cd "/var/www/html";

opcao[4]=cd "/home/bruno/Documents/Scripts";

echo "digite opcao (1-4)"; read op;

cd "${opcao[$op]}";


Ao rodar seguinte erro:

./scriptando2: line 20: syntax error near unexpected token `('
./scriptando2: line 20: `echo "digite opcao (1-4)"; read op;'


Tomei a liberdade:

#!/bin/bash

echo "Insira seu Nome"
read nome

clear

opcao[1]="/bin"
opcao[2]="/etc"
opcao[3]="/var/www/html"
opcao[4]="/home/bruno/Documents/Scripts"

echo -ne "Bem vindo $nome. "

while true; do

echo -e "Para qual diretorio voce gostaria de ir:\n"
echo -e "1 - binarios\n2 - arquivos instalados\n3 - arquivos de configuracao do site\n4 - arquivo dos scripts\n"

read -p "digite opcao (1-4): " -n 1 op

if [[ op -ge 1 && op -le 4 ]]; then
echo -e "\nAcessando diretorio ${opcao[$op]}."
cd "${opcao[$op]}"
break;
fi
echo -ne "\nOpcao invalida. "

done







11. Re: Direcionar para os diretórios

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/04/2013 - 01:23h

brunobudag escreveu:

Meu script não funcionou nenhuma das 2 maneiras, segue abaixo como eu deixei porém sem sucesso, já tentei outras maneiras mas fazer com que ele faça eu entrar no diretório ta complicado.

read -p "Insira seu Nome" nome
clear

echo -e "
Bem vindo" $nome Para qual diretorio voce gostaria de ir:

1 - binarios
2 - arquivos instalados
3 - arquivos de configuracao do site
4 - arquivo dos scripts

read opcao

case $opcao in

1)

cd /var/www/html


;;

2)

cd /bin


;;

3)

cd /etc/


;;

*)


Digite apenas as opcoes de 1 a 4

;;

esac


Ao rodar me gera a seguinte tela:

Bem vindo brunbudag Para qual diretorio voce gostaria de ir:
./scriptando: line 8: 1: command not found
./scriptando: line 9: 2: command not found
./scriptando: line 10: 3: command not found
./scriptando: line 11: 4: command not found


Eu examinei a primeira versão que o outro rapaz mandou e está ok.
Inclusive ela é melhor porque uma das vantagens é de legibilidade para fins de manutenção e documentação.

Pelo que constatei o erro está em:

echo -e "
Bem vindo" $nome Para qual diretorio voce gostaria de ir: ##### aqui #####

1 - binarios
2 - arquivos instalados
3 - arquivos de configuracao do site
4 - arquivo dos scripts


As aspas não estão adequadamente colocadas e o interpretador pensa que, ali na primeira coluna, aqueles 1 2 3 e 4 são comandos, instruções, scripts, alias, funções etc. qualquer coisa que ele pudesse executar.

Como se fosse digitado no terminal

$ 1 - binarios

Ele pensa que 1 é comando e que - e a palavra binarios são parâmetros. Por isso o erro é command not found.

echo -e "
Bem vindo $nome Para qual diretorio voce gostaria de ir: ##### tirei aspas daqui #####

1 - binarios
2 - arquivos instalados
3 - arquivos de configuracao do site
4 - arquivo dos scripts" ##### e coloquei aqui #####


E foi isso.

*** ADD ***

Ainda há um pequeno erro dentro do case, mas pelo que expliquei, gostaria de que você o corrigisse porque se enquadra com o que já foi descrito.



12. Re: Direcionar para os diretórios

Monteiro
werwolf

(usa Debian)

Enviado em 20/04/2013 - 18:59h

Ai pessoal tomei a liberdade de fazer algo :

espero que ajude pois vejo que o "case" e o caso ! kk

segue a baixo:

read -p "insira seu nome : " nome
clear

echo -e" Bem vindo $nome paraqual diretorio gostaria de ir:
1 - binarios
2 - arquivos instalados
3 - rquivos de configuração do site
4 - arquivos de scripts "

read opcao

case $opcao in

1)

clear

echo "você esta indo para o diretorio de Binarios"

sleep 1

cd /bin

pwd

;;

2)

clear

echo "você esta indo para o diretorio de Arquivos instalados"

sleep 1

cd /etc

pwd

;;

3)

clear

echo "você esta indo para o diretorio de configuração do site"

sleep 1

cd /var/www/html

pwd

;;

4)

clear

echo "você esta indo para o diretorio de Scripts"

sleep 1

#cd /

;;

*)

echo "digite apenas as opções de 1 a 4"


;;
esac



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts