Почему некоторые исполняемые файлы останавливаются в текстовом файле? [дубликат]Linux

Ответить Пред. темаСлед. тема
Anonymous
 Почему некоторые исполняемые файлы останавливаются в текстовом файле? [дубликат]

Сообщение Anonymous »

Недавно я столкнулся с проблемой, которую решил, не понимая основного механизма. Таким образом, название вопроса может быть неясным. Ситуация следующая:
  • Для следующего скрипта:

Код: Выделить всё

while read l; do
echo "$l"
end < file.csv
Это правильно отразит все строки в моем файле.
  • Однако это:

Код: Выделить всё

while read l; do
echo "$l"
executable --input $l
end < file.csv
правильно отобразит первую строку моего файла, но чтение файла прекратится, поскольку чтение вернет 0 (или любое другое значение, заставляющее цикл останавливаться). Исполняемый файл, который я использую, — las2las64.exe, если это кому-то поможет.
Исправление, которое я нашел, — это использование read -u 10, а также , чтобы использовать файловый дескриптор с номером 10.
Чего я не понимаю, так это того, почему происходит такое поведение? Я предполагаю, что исполняемый файл «перезаписывает» или использует стандартный ввод, не возвращая его вызывающей стороне. Спасибо всем, кто будет достаточно любезен, чтобы объяснить мне это.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -text-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»