#bash #sh #ksh
Вопрос:
Итак, я планирую создать сценарий для настройки с поддержкой кластера, где у него есть уровень администратора и уровень диагностики, на котором вы можете запускать расширенные команды, которые недоступны на уровне администратора. Но дело в том, что перед тем, как вы сможете войти в уровень диагностики, вам нужно ввести пароль, и в той же строке вам нужно выполнить пару команд, чтобы вы все еще находились на этом уровне диагностики, потому что, если вы добавите эту команду в следующую строку, она вернет ошибку, потому что в основном вывы уже запускаете эту команду на уровне администратора.
'diag d -c off; systemshell -node nodename;
<— здесь запрашивается пароль
Это то, чего я пытаюсь достичь после ввода пароля после systemshell. 'diag d -c off; systemshell -node nodename; next command here; next command here; next command here
Я пытался использовать канал (echo и cat), но он не работает.
Любая помощь будет принята с благодарностью.
Комментарии:
1.Как вы используете канал? Вероятно, происходит то, что
next command here
должно вводиться само поsystemshell
себе, а не следующая команда для выполнения оболочки послеsystemshell
выхода.2. Вот как я использовал команду pipe.
echo 'password0!' | ssh -i key.pub admin@123 'diag d -c off; systemshell -node nodename'
да,next command here
это ввод в systemshell, и его следует запускать, пока вы находитесь в systemshell (уровень diag).3. Вам понадобится что-то вроде
systemshell -node nodename -c "next command here; next command here"
(еслиsystemshell
есть опция для указания команды для выполнения) или используйте документ here .4.
systemshell -node nodename -c
эта команда не будет работать, поскольку-c
не распознается на уровне администратора