Script de shell para listar as primeiras ou últimas n linhas de um arquivo

0

Eu quero escrever um script que liste as primeiras n linhas ou as últimas n linhas de um arquivo especificado.

cd
        $1=filename
        $2=string
        $3=lenght

if [ "$filename" == "head" ]

#If the user uses the head command then do the following.

then [ "$filename" == "tail" ]
        head -n 10 /MyDirectoryGoesHere
else
#If the user uses the tail command do this instead.

        tail -n 10 /MyDirectoryGoesHere
fi

Quando executo este comando, recebo um erro "Inexpected token near else" e me disseram para adicionar um loop for, mas não sei como ou onde. Aprecie a ajuda.

    
por Jack22 15.12.2015 / 22:58

1 resposta

3

Três coisas:

(1) Uma construção if-then-else-fi deve se parecer mais com isso:

if [ "$myvar" = "value" ]; then
  # do stuff
elif [ "$myvar" = "othervalue" ]; then
  # do other stuff
else
  # do still other stuff
fi

(2) Você poderia usar apenas um interruptor de caso:

case "$myvar" in
  "value")
    # do stuff
    ;;
  "othervalue")
    # do other stuff
    ;;
  *)
    # do still other stuff
    ;;
esac

(3) Eu não sei o que você está tentando fazer com os comandos $1=filename , mas definitivamente não é o jeito certo de fazer isso, seja o que for. ;)

Confira o tutorial de preparação para para mais.

    
por 15.12.2015 / 23:15