Команда List не отображает весь вывод - PullRequest
0 голосов
/ 20 сентября 2018

Попытка подключиться к нескольким машинам с помощью bash на машине, у которой есть открытые ключи ssh для других, и запустить на них команду, чтобы отобразить вывод на этой машине.Если при выполнении сценария я использую переменную ' $ a ', как показано в приведенном ниже коде, я получаю этот незавершенный вывод

    bash: total: command not found
    bash: line 1: drwxr-xr-x: command not found
    bash: line 2: drwxr-xr-x: command not found
    bash: line 3: -rw-r--r--: command not found
    bash: line 5: -rwxr-xr-x: command not found
    ....

Однако, если я использую закомментированный блок без вызова *Переменная 1006 * $ a bash выводит правильный вывод команды.

Выполненный код:

#!/bin/bash
a=$(ls -lah)
for i in "machine1" "machine2" 

do ssh root\@"$i" "$a; exit;"
*#do ssh root\@"$i" "ls -lah; exit;" - displays accordingly*
done

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Привет У меня есть другой ответ, которым я давно пользуюсь.

declare machines=("user@machine1" "user@machine2")
command="ls -lah"
for machine in "${machines[@]}"
do
  ssh "$machine" "$command"
done

$ a не сработал, потому что он будет выполнен.

0 голосов
/ 20 сентября 2018

Ваш код не работает, потому что a=$(ls -lah) назначает вывод ls -lah переменной a.Измените его на a='ls -lah', и все будет в порядке.

См. Раздел замены команд в руководстве по вашему bash

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...