Кодирование клавиатуры в Bash Script
Вопрос
У меня есть следующий способ отправить работу с кластером, используя qsub:
Submitting jobs from standard input
To submit a PBS job by typing job specifications at the command line, the user types
qsub [options] <return>
then types any directives, then any tasks, followed by
(in UNIX) CTRL-D on a line by itself
(in Windows) CTRL-Z <return>
to terminate the input.
Есть ли способ, которым мы можем кодировать RETURN и CTRL-D в скрипте bash, чтобы мы могли сделать что-то вроде:
for i in path/*.txt; do echo "$i"; qsub [RETURN] /path2/mycode $i; [CTRL-D]; done
Решение
Вы должны использовать перенаправление через каналы:
for i in path/*.txt; do
echo "$i";
echo "/path2/mycode $i" | qsub;
done
Другие советы
Попробуйте echo / path2 / mycode $ i | qsub код>.
Если это не сработает или вам нужно передать более сложные данные, тогда ожидайте может помочь.
Просто для пояснения (поскольку ответ corvus совершенно верен) - CTRL-D означает просто «конец файла». или «конец ввода», поэтому, когда вы выводите этот текст на qsub, он автоматически отправит сигнал конца файла (что аналогично нажатию клавиши CTRL-D)
Не связан с StackOverflow