-1

У меня есть список серверов в файле hostlist, и я пытаюсь выполнить приведенный ниже скрипт:

#!/bin/bash
for server in `cat hostlist`; do
ssh $server 'hostname ;id $(cat /etc/passwd | grep Luyang | awk -F '[:]' '{print $1}') ; id  ppandey' >> b
done

Я хочу получить выходные данные для команды id пользователя Luyang. Для того же самого я упомянул id $(cat /etc/passwd | grep Luyang | awk -F '[:]' '{print $1}') но я получаю ошибки при запуске скрипта.

Я также пытался поставить «\» перед всеми специальными персонажами, но не повезло.

1 ответ1

1

Вы должны проверить в руководстве оболочки, как работает экранирование / цитирование. Также обратите внимание на возможности awk, просто для простоты, которая обычно приводит к удобочитаемости в дополнение к скорости.

Это может помочь:

ssh yourhost "hostname ;id \$( awk -F: '/Luyang/ {print \$1}' /etc/passwd)"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .