Исправление неверного числа строк в хвосте путем передачи целого числа в хвост - PullRequest
0 голосов
/ 09 февраля 2020

Запуск Centos8.

Вот мой текущий (крошечный) скрипт:

#!/usr/bin/env bash
x=$((($2-$1)+1))
head -n $2 $3 | tail -n -$x

В качестве примера ввода:

sh script.sh 7 10 /etc/passwd

И что я попытка получить это строки 7-10 из /etc/passwd.

Это должно быть довольно просто, потому что просто выполнение

head -n 7 /etc/passwd | tail -n -4

Прекрасно возвращает эти 4 строки.

Однако, использование $ x (для получения ввода от второго числа, минус первое, плюс 1) не работает. Всякий раз, когда я запускаю этот код, я получаю эту ошибку:

tail: invalid number of lines: ‘4\r\r’

Что, насколько я понимаю, означает, что код не принимает ввод $ x из маленькой математики, которую я сделал, и думает, что его 4 с двумя пробелами в конце ?

Как мне go рассказать об исправлении этой проблемы, чтобы четыре строки в / etc / password были перечислены?

1 Ответ

0 голосов
/ 09 февраля 2020

В строке 3

#!/usr/bin/env bash
x=$((($2-$1)+1))
head -n $1 $3 | tail -n -$x

есть проблема, которая должна выражаться в 1 долларе, а не в 2 *.

И окончания строки: Ма c, а не Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...