Codificación del comando de teclado en secuencia de comandos Bash
Pregunta
Tengo la siguiente forma de enviar un trabajo con el clúster usando 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.
¿Hay alguna manera de codificar RETURN y CTRL-D en el script bash para que podamos hacer algo como:
for i in path/*.txt; do echo "$i"; qsub [RETURN] /path2/mycode $i; [CTRL-D]; done
Solución
Debe usar la redirección a través de tuberías:
for i in path/*.txt; do
echo "$i";
echo "/path2/mycode $i" | qsub;
done
Otros consejos
Pruebe echo / path2 / mycode $ i | qsub
.
Si esto no funciona o necesita pasar datos más complejos, entonces esperar puede ayudar.
Solo para aclarar (dado que la respuesta de corvus es exactamente correcta) - CTRL-D solo significa "fin de archivo". o " final de entrada " ;, así que cuando repita ese texto en qsub, enviará automáticamente una señal de fin de archivo (que es lo mismo que presionar CTRL-D)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow