Сценарий оболочки для отображения первой или последней n строк файла

Я хочу написать сценарий, в котором перечислены либо первые n строк, либо последние n строк указанного файла.

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 

Когда я запускаю эту команду, я получаю сообщение об ошибке «Неожиданный токен рядом с другим», и мне сказали добавить цикл for, но не знаю, как и где. Цените помощь.

Три вещи:

(1) Конструкция if-then-else-fi должна выглядеть примерно так:

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

(2) Вы можете просто использовать переключатель корпуса:

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

(3) Я не знаю, что вы пытаетесь сделать с командами $1=filename , но это определенно не правильный способ сделать это, что бы это ни было. 😉

Ознакомьтесь с учебником по wooledge bash для получения дополнительной информации.