Bash создает новую строку без необходимости [дублировать]

Имейте в виду, что независимо от сценария причина всегда одинакова в .NET:

Вы пытаетесь использовать ссылочную переменную, значение которой Nothing / null. Если для ссылочной переменной значение Nothing / null, это означает, что на самом деле оно не содержит ссылку на экземпляр любого объекта, который существует в куче.

Вы либо никогда не присваивали какую-либо переменную, никогда не создавали экземпляр значения, присвоенного переменной, или вы вручную устанавливали переменную, равную Nothing / null, или вы вызывали функцию, которая установите для этой переменной значение Nothing / null.

8
задан atheaos 1 January 2012 в 20:36
поделиться

3 ответа

По умолчанию цикл Bash for разбивается на все пробелы. Вы можете переопределить это, установив переменную IFS:

IFS=$'\n'
for i in `cat r.txt`; do echo "$i"; done
unset IFS
19
ответ дан Oliver Charlesworth 27 August 2018 в 23:40
поделиться
IFS="\n"
for i in `cat r.txt`; do echo "$i"; done
unset IFS
-1
ответ дан Arenielle 27 August 2018 в 23:40
поделиться

Любая установка IFS как предложено или используется while:

while read theline; do echo "$theline"; done <thefile
3
ответ дан fge 27 August 2018 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: