Как я могу выполнить одну и ту же команду несколько раз подряд и захватить все коды выхода?

Мне кажется, что QCreator использует неправильный тип оболочки на вашем RPi2? Сообщение об ошибке говорит о том, что оболочка не может создать тип массива, что может указывать на то, что она запускает dash say вместо bash.

Если это так, вам нужно найти способ "заставить" логин ssh на RPi2 использовать заданную оболочку (вероятно, bash). Одним из ограниченных способов является использование принудительной команды (команд) при входе в ssh на основе ключа, а не пароля. Однако это ограничит пользователя одним набором команд при входе в систему.

Вы можете попробовать использовать chsh на RPi2 для соответствующего пользователя, чтобы установить оболочку по умолчанию на /bin/bash? Если он уже установлен, то вы можете попробовать добавить RequestTTY=force в ~/.ssh/config для пользователя клиента на вашей локальной машине (на которой вы запускаете QtCreator).

0
06.03.2018, 04:01
1 ответ

tldr; 1 )redirección de salida; 2 )no trap.

Respuesta completa:

  1. 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 outputy nunca usarla, simplemente ejecute SPEC=desktop/homepage npm test > uniqe_log_$xo SPEC=desktop/homepage npm test > combined_log. Para esto, tomé prestada furtivamente la variable xque declaraste en la parte superior de tu script e incrementé cada prueba.

  2. También en su función runTests, no hay necesidad de definir una variable exitCodeo realizar un echo; simplemente realice return $?.

  3. 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 runTestsfuera de su while, por lo que la variable exitcodesiempre será la misma para todas las iteraciones 1..numtotal.

  4. Supone que exitcodesolo 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 )).

  5. No veo el sentido de realizar los echos individuales para el éxito o el error, ya que no agrega información útil y solo desordenará su salida.

  6. La variable final declarada, numsuccesstambién es innecesaria; simplemente ponga $(($numTotal - $numError))en la siguiente instrucción echo.

  7. ¿Qué pasa con la declaración trap? Perderlo / eliminarlo.

1
28.01.2020, 02:43

Теги

Похожие вопросы