Мне кажется, что QCreator использует неправильный тип оболочки на вашем RPi2? Сообщение об ошибке говорит о том, что оболочка не может создать тип массива, что может указывать на то, что она запускает dash say вместо bash.
Если это так, вам нужно найти способ "заставить" логин ssh на RPi2 использовать заданную оболочку (вероятно, bash). Одним из ограниченных способов является использование принудительной команды (команд) при входе в ssh на основе ключа, а не пароля. Однако это ограничит пользователя одним набором команд при входе в систему.
Вы можете попробовать использовать chsh на RPi2 для соответствующего пользователя, чтобы установить оболочку по умолчанию на /bin/bash? Если он уже установлен, то вы можете попробовать добавить RequestTTY=force в ~/.ssh/config для пользователя клиента на вашей локальной машине (на которой вы запускаете QtCreator).
tldr; 1 )redirección de salida; 2 )no trap
.
Respuesta completa:
En su función runTests
, puede redirigir la salida a algunos archivos de registro únicos o múltiples. En lugar de crear una variable local output
y nunca usarla, simplemente ejecute SPEC=desktop/homepage npm test > uniqe_log_$x
o SPEC=desktop/homepage npm test > combined_log
. Para esto, tomé prestada furtivamente la variable x
que declaraste en la parte superior de tu script e incrementé cada prueba.
También en su función runTests
, no hay necesidad de definir una variable exitCode
o realizar un echo
; simplemente realice return $?
.
Llamo a BS por su afirmación de que su secuencia de comandos está cerca de lo que desea, porque en su función runTestsMany
, llama a la función runTests
fuera de su while
, por lo que la variable exitcode
siempre será la misma para todas las iteraciones 1..numtotal
.
Supone que exitcode
solo puede ser 1 o 0, por lo que no es necesario realizar ninguna prueba, solo agréguelo a su variable numerror
, es decir. numError=$ (($numError + $exitcode )).
No veo el sentido de realizar los echo
s individuales para el éxito o el error, ya que no agrega información útil y solo desordenará su salida.
La variable final declarada, numsuccess
también es innecesaria; simplemente ponga $(($numTotal - $numError))
en la siguiente instrucción echo
.
¿Qué pasa con la declaración trap
? Perderlo / eliminarlo.