Intereting Posts
Напишите сценарий для создания пользователей с заранее определенными паролями Копирование на USB-накопитель изменяет имя файла Ubuntu 18.04, Ctrl-C не работает в RealVNC и Remmina, но работает нормально на локальных Как настроить XFCE (или сам X или любой другой) для запуска пользовательской команды, когда пользователь некоторое время простаивает? В чем разница в этих двух средах bash? Как монтировать «корневую» файловую систему Windows Samba Share с cifs? Выход команды командной консоли не отображается в состоянии tmux Общайтесь на сеансах X-desktop на одном компьютере? pppd "Не удалось получить номер канала: Ошибка ввода / вывода" Пароль Sudo не работает для fedora28 Разница между .tar.gz.asc, git.tar.bz2 и .tar.bz2 изменить URL-адрес веб-браузера через командную строку? Что запускается, когда программа предлагает вам открыть файл в Linux? `command` vs` type` – найти файл программы в PATH пользователя Аутентификация пользователей через LDAP с использованием nginx

Возможные причины ошибки "cat: -: Нет такого файла или каталога"

В основном у меня есть именно эти строки в моем довольно сложном сценарии:

echo $SHELL echo "$BASH_VERSION" echo $(which cat) echo $(alias cat 2>/dev/null) || : cat <<AAA test AAA echo 1 

И он показывает ошибку в журнале отладки:

 ++++ echo /bin/bash ++++ echo '4.3.46(1)-release' +++++ which cat ++++ echo /bin/cat +++++ alias cat ++++ echo ++++ cat cat: -: No such file or directory 

И когда я пытаюсь повторить то же самое в простом сценарии – кошка работает по назначению и просто печатает «тест»,

(То же самое происходит, когда я заменяю AAA каким-то другим словом. Это простой контейнер для докеров из базового образа «ubuntu» с некоторыми установленными программами. И я уверен, что эта точная настройка работала нормально в течение нескольких месяцев. Может быть, контейнер просто сломан, но Мне все еще интересно найти первопричину).

Любая идея, что может вызвать ошибку?

Обновление на следующий день: TLDR: Я считаю, что это была некоторая проблема с докером. Для решения действующих комментариев:

  1. обычная команда $ (cat myfile) работала, как ожидалось, из сложного скрипта
  2. Я уверен, что никакие скрытые символы не могут вызвать проблему
  3. сценарий был сложным только в количестве вещей, которые он пытается сделать; на самом деле нет взлома, как обработка IFS / файловых дескрипторов.
  4. / tmp было нормально wtr-пространство и разрешения
  5. Теперь я помню, что в какой-то момент / dev / shm был заполнен на 100% и, несмотря на то, что я его очистил – может быть, это связано (что-то испортило в ядре?)

Сегодня я загрузился в этот контейнер, и он выглядит сломанным еще больше – по крайней мере, все крепления выглядят поврежденными, как показано ниже:

 # ll ls: cannot access '_template': No such file or directory drwxr-xr-x 2 root root 4096 Apr 2 13:41 _system/ d????????? ? ? ? ? ? _template/ 

Поэтому я больше не могу запускать скрипт. Я создам новый контейнер и ожидаю, что он будет работать правильно.

Я считаю, что дальнейшее устранение неполадок требует копания в журналах ядра / докеров и, вероятно, не так интересно. В любом случае – спасибо всем за попытку – давайте считать, что это был просто «сломанный контейнер», надеюсь, что это поможет кому-то в какой-то момент встретить точную проблему