Ожидайте ошибки скрипта - дополнительные символы после Close-Quote

Есть два способа достичь своей цели.

Самый простой способ - добавить exclude = * в ваш файл /etc/yum.conf .

Второй - отключить все репозитории. Для каждого определения репозитория в /etc/yum.repos.d/ добавьте строку enabled = 0 , то есть (CentOS-Base.repo):

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=0
1
30.10.2018, 10:30
2 ответа

TCL прост . В этом случае, как указывает mosvyв комментариях, используйте {...}, чтобы отключить интерполяцию сложного шелл-кода. Однако \rдля ввода команды нельзя экранировать, а процедуре sendтребуется одна строка, поэтому либо соедините строку вместе, либо используйте два вызова send:

#!/usr/bin/env expect
catch {exec rm foo}
log_file expect.log
spawn -noecho sh
expect -ex {$ }
send {df | awk '/\//{print $NF}' > foo}
send "\r"
expect -ex {$ }
send -- {exit}
send "\r"
expect eof

Это может быть улучшено с помощью sendlineпроцедуры для задачи, которая не позволяет биту \rзагромождать код:

#!/usr/bin/env expect
proc sendline {line} { send -- "$line\r" }
spawn -noecho sh
expect -ex {$ }
sendline {df | awk '/\//{print $NF}' > foo}
expect -ex {$ }
sendline "exit"
expect eof

Если вам нужна интерполяция, то потребуется обратный удар, хотя в этом случае может быть лучше исключить шелл-код и вместо этого вызвать программу непосредственно в удаленной системе, которая выполняет необходимую задачу или производит необходимый вывод в простом виде. потреблять форму.

3
27.01.2020, 23:42

Я заработал, установив имя пользователя и пароль в начале скрипта.

set Username "END_USER"

Представьте, что мой пароль былpas\Sw)/ord

Мне пришлось установить специальные символы в шестнадцатеричном формате, где шестнадцатеричный для

\это\x5c

)это\x29

/это\x2f

Поэтому мне пришлось установить его, используя приведенный ниже синтаксис, без "в начале и "в конце.

set Password pas\x5cSw\x29\x2ford

шестнадцатеричные значения можно найти вhttp://defindit.com/ascii.html

Вы также можете использовать

puts "$Username"

puts $Password

для отображения значений в целях проверки.

0
26.05.2021, 14:53

Теги

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