Opa barsaabc
blz?
Então, vc está errando em colocar o $ antes da variável no read.
Veja:
~$ cat teste
#!/bin/bash
echo "Digite o arquivo"
read arq
if [ -d "$arq" ]
then
echo "É um Diretório!"
else
echo "É um arquivo!"
fi
a variável $1 representa o primeiro parametro passado para o programa,
por isso não rola criar algo como read 1, pois ele não entende isso..
Mas, vc poderia mudar deixando assim:
~$ cat teste
#!/bin/bash
if [ $# = 0 ]
then
echo "Use $0 nome_arquivo/diretorio"
exit 1
else
if [ -d "$1" ]
then
echo "É um Diretório!"
else
echo "É um arquivo!"
fi
fi
~$ ./teste meus_scripts
É um Diretório!
~$ ./teste merda.txt
É um arquivo!
Não entendi muito bem porque vc usou uma / na frente do nome do arquivo
no test, pois, ele vai pegar a raiz da maquina + o nome do arquivo..
Bem, espero ter ajudado.
[]'s
Tia
Em Sex 02 Dez 2005 09:33, barsaabc escreveu:
Eu estou tentando fazer um script, que ele perguta o nome do arquivo,
digitando o nome ele diz se e um arquivo ou diretório: isto é um
exercício do Aurelio, mesmo digitando um arquivo ele dá a resposta que
um diretório.
#!/bin/bash
echo "Digite o arquivo"
read $1
if test -d "/$1"
then
echo "É um Diretório!"
else
echo "É um arquivo!"
fi
na linha de comando digitando:
prompt$ if test -d "/etc"
then
echo "é um diretório"
else
echo "é um arquivo"
fi
é um diretório
resposta correta
prompt$ if test -d "/passwd"
then
echo "é um diretório"
else
echo "é um arquivo"
fi
é um arquivo
reposta correta
entenderão no script não funciona, onde esta o erro.
desculpem mais sou novo no negócio.
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação,
como perl, C etc. Quem insistir em não seguir esta regra será moderado
sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação,
como perl, C etc. Quem insistir em não seguir esta regra será moderado
sem prévio aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
*Yahoo! Grupos, um serviço oferecido por:*
PUBLICIDADE
------------------------------------------------------------------------
*Links do Yahoo! Grupos*
* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
* Para sair deste grupo, envie um e-mail para:
address@hidden
<mailto:address@hidden?subject=Unsubscribe>
* O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.