Странный вывод при использовании ssh внутри цикла over a file

macOS поставляется с Python. Используйте его модуль random .

python -c 'import random; rng = random.SystemRandom(); print rng.randint(-2**63, 2**63-1)

2
05.01.2017, 21:44
2 ответа

Во-первых, ваша команда ssh поглощает ваш ввод (поступающий из nodes.txt ), добавьте ] к нему. Добавление & имеет тот же эффект, поскольку, помещая ssh в фоновый режим, он отключает его от стандартного ввода.

Во-вторых, как заметил Кусалананда, ваши переменные $ {line [1]} и $ {line [2]} не заменяются, потому что они заключены в одинарные кавычки.

0
27.01.2020, 22:43

Что касается комментария @Kusalananda, оболочка не расширяет переменные в одинарных кавычках. Это объясняет, почему echo внутри ssh не работает. После того, как я заменю одинарные кавычки на двойные, результат будет примерно таким:

rivervm-1
rivervm-2   dc2 rack2
rivervm-3   dc2 rack3
rivervm-4   dc2 rack4
dc2
rack1
Connection to rivervm-1 closed.

Тем не менее, он выполняет только команды на rivervm-1, но не остальные.

Я нашел решение этой проблемы: добавление '&' в конец команды ssh. Может ли кто-нибудь объяснить мне, почему это работает? Спасибо!

0
27.01.2020, 22:43

Теги

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