В настоящее время мне поручено проверить содержимое нескольких файлов вручную. У меня есть все файлы, перечисленные в текстовом файле, строка за строкой (новая строка в конце каждой строки), и в настоящее время я пытаюсь разработать сценарий bash, который способен читать текстовый файл - строка за строкой, а затем открывать их в nano для проверки. Проблема возникает, когда я открываю его в nano - в настоящее время я запускаю linux на win10 в качестве подсистемы, поэтому у меня доступен только терминал. Моя текущая проблема - это когда я пытаюсь сделать это:
Cat file | while read line; do nano “$line”; done
Минимальный рабочий пример:
mkdir test
cd test
touch {a,v,c}
ls > file
Cat file | while read line; do nano “$line”; done
все файлы обрабатываются одновременно, или он пытается - он перебирает все файлы и завершает - не позволяя мне проверить файл в nano или позволить мне правильно закрыть его.
Можно ли как-то приостановить цикл while, пока файл открыт в nano?
Добро пожаловать в SO, вам нужно показать нам образцы ваших файлов (возможно, это не точные данные, а только образцы в тегах кода), а затем сообщите нам, какие выходные данные вам нужны, в своем сообщении?
@itChi каждая строка текстового файла - это путь к фактическому файлу.
@ user9596253, пожалуйста, добавьте образцы в свой пост с помощью кнопки {} и сообщите нам об этом?
На нем вообще работает nano? Все ли файлы открываются на этом конце или каждое наноокно закрывается сразу после открытия?
@choroba так и не дошла до конца .. Обычно вылетает ..
так что что-то вроде bash -c nano $line должно запускать nano в отдельной оболочке. Когда вы выйдете из nano, цикл должен возобновиться.
Я работаю в подсистеме linux .. @itChi Я косвенно делаю то, что вы начали в терминале
Как это вылетает?
приведенный выше пример помечен сообщением: Received SIGHUP or SIGTERM





Cat file | while read line; do nano “$line”; done
Nano может пытаться взаимодействовать с вами через свой стандартный ввод, который является конвейером. Попробуйте перенаправить стандартный ввод со своего TTY:
Cat file | while read line; do nano “$line” < /dev/tty; done
Итак, вы используете nano - текстовый редактор, чтобы попытаться прочитать одну строку текста из существующего текстового файла? Простите меня, но поскольку здесь нет автономии как таковой, почему бы просто не открыть файл в nano? Есть хоть какая-то фильтрация? Например, если строка содержит "foo"?