2010-12-15, 11:57
  #1
Medlem
Jag är helt ny i shell script och behöver hjälp med en grej. Nu är det så att jag ska skriva ett script som läser in ett godtyckligt antal in-argument, och för varje argument testa om det är en katalog, symbolisk länk, en körbar fil eller en vanlig fil och slutligen skriva ut resultatet. Det
bör också vara möjligt att skriva fil.sh * för att få en lista över alla filer i en katalog.

Det jag skulle vilja göra är att skriva en if sats som ser ut som följande

#!/bin/sh

if [ -d $*]
then
echo $*

else [ -l $*]
if [ -d $*]
then
echo $*

else [ -x $*]
if [ -d $*]
then
echo $*

else [-f $*]
if [ -d $*]
then
echo $*
fi
Citera
2010-12-15, 13:36
  #2
Medlem
hashs avatar
Citat:
Ursprungligen postat av BosseBorste
Jag är helt ny i shell script och behöver hjälp med en grej. Nu är det så att jag ska skriva ett script som läser in ett godtyckligt antal in-argument, och för varje argument testa om det är en katalog, symbolisk länk, en körbar fil eller en vanlig fil och slutligen skriva ut resultatet. Det
bör också vara möjligt att skriva fil.sh * för att få en lista över alla filer i en katalog.

Det jag skulle vilja göra är att skriva en if sats som ser ut som följande

#!/bin/sh

if [ -d $*]
then
echo $*

else [ -l $*]
if [ -d $*]
then
echo $*

else [ -x $*]
if [ -d $*]
then
echo $*

else [-f $*]
if [ -d $*]
then
echo $*
fi

Nått sånt här kanske du menar?
Kod:
#!/bin/sh
for i in $*
do
   if   [ -
"$i] ; then
      
echo "$i : File is a directory"
   
elif [ -"$i] ; then
      
echo "$i : File is a symbolic link"
   
elif [ -"$i] ; then
      
echo "$i : File is an executable"
   
else
      echo 
"$i : Unknown file type"
   
fi
done 
__________________
Senast redigerad av hash 2010-12-15 kl. 13:48.
Citera
2010-12-15, 17:41
  #3
Medlem
Citat:
Ursprungligen postat av hash
Nått sånt här kanske du menar?
Kod:
#!/bin/sh
for i in $*
do
   if   [ -
"$i] ; then
      
echo "$i : File is a directory"
   
elif [ -"$i] ; then
      
echo "$i : File is a symbolic link"
   
elif [ -"$i] ; then
      
echo "$i : File is an executable"
   
else
      echo 
"$i : Unknown file type"
   
fi
done 
Funkade perfekt, tackar!
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in