Вставьте пароль в однострочную команду

#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 не распознается на уровне администратора