Открыв окно ошибки (связанное с некоторым дефектным разрешением экрана), я вызвал эту проблему. Простое закрытие проблемы решило проблему.
Странная часть заключалась в том, что это не было диалоговое окно экрана печати.
xargs, созданная для запуска команды с аргументами, которые считываются из stdin, имеет параметр --arg-file, который позволяет считывать аргументы из файла. В сочетании с флагом -L1 он будет читать ваши файлы аргументов за строкой, а для каждой строки выполнить команду. Вот пример:
$ cat args.txt
one two three
four file six
$ xargs -L1 --arg-file=args.txt echo
one two three
four file six
Замените echo на свой скрипт.
В качестве альтернативы вы всегда можете перенаправить файл, который будет читаться xargs из потока stdin следующим образом:
$ xargs -L1 echo < args.txt
one two three
four file six
xargs, созданная для запуска команды с аргументами, которые считываются из stdin, имеет параметр --arg-file, который позволяет считывать аргументы из файла. В сочетании с флагом -L1 он будет читать ваши файлы аргументов за строкой, а для каждой строки выполнить команду. Вот пример:
$ cat args.txt
one two three
four file six
$ xargs -L1 --arg-file=args.txt echo
one two three
four file six
Замените echo на свой скрипт.
В качестве альтернативы вы всегда можете перенаправить файл, который будет читаться xargs из потока stdin следующим образом:
$ xargs -L1 echo < args.txt
one two three
four file six
xargs, созданная для запуска команды с аргументами, которые считываются из stdin, имеет параметр --arg-file, который позволяет считывать аргументы из файла. В сочетании с флагом -L1 он будет читать ваши файлы аргументов за строкой, а для каждой строки выполнить команду. Вот пример:
$ cat args.txt
one two three
four file six
$ xargs -L1 --arg-file=args.txt echo
one two three
four file six
Замените echo на свой скрипт.
В качестве альтернативы вы всегда можете перенаправить файл, который будет читаться xargs из потока stdin следующим образом:
$ xargs -L1 echo < args.txt
one two three
four file six
Использование цикла while:
#!/bin/bash
while IFS= read -r line; do
# if the line read is empty
# go to the next line. Skips empty lines
if [ -z "${line}" ]
then
continue
fi
/path/to/MyScript.sh $line
done < "$1"
Затем вызовите этот скрипт anything.sh и запустите его следующим образом:
anything.sh /path/to/file/with/foo
Не забудьте сделать оба anything.sh и MyScript.sh исполняемый файл
Использование цикла while:
#!/bin/bash
while IFS= read -r line; do
# if the line read is empty
# go to the next line. Skips empty lines
if [ -z "${line}" ]
then
continue
fi
/path/to/MyScript.sh $line
done < "$1"
Затем вызовите этот скрипт anything.sh и запустите его следующим образом:
anything.sh /path/to/file/with/foo
Не забудьте сделать оба anything.sh и MyScript.sh исполняемый файл
Использование цикла while:
#!/bin/bash
while IFS= read -r line; do
# if the line read is empty
# go to the next line. Skips empty lines
if [ -z "${line}" ]
then
continue
fi
/path/to/MyScript.sh $line
done < "$1"
Затем вызовите этот скрипт anything.sh и запустите его следующим образом:
anything.sh /path/to/file/with/foo
Не забудьте сделать оба anything.sh и MyScript.sh исполняемый файл