Когда SED используется в ожидаемом команде ожидаемого, какой правильный способ избежать обратных челков?

Используя CentOS 7, я решил это, создав /lib/systemd/system/couchbase-server.service со следующим:

# -*- mode: conf-unix; -*-
[Unit]
Description = Couchbase Server
Documentation = http://docs.couchbase.com
After = network.target remote-fs.target nss-lookup.target

[Service]
SyslogIdentifier = couchbase
User = couchbase
Type = forking
PIDFile=/opt/couchbase/var/lib/couchbase/couchbase-server.pid
WorkingDirectory = /opt/couchbase/var/lib/couchbase
LimitNOFILE = 40960
LimitCORE = unlimited
LimitMEMLOCK = unlimited
ExecStart = /opt/couchbase/bin/couchbase-server -noinput -detached > /opt/couchbase/var/lib/couchbase/logs/start.log 2>&1
ExecStop = /opt/couchbase/bin/couchbase-server -k

[Install]
WantedBy = multi-user.target

Включить с помощью:

systemctl daemon-reload && systemctl enable couchbase-server && systemctl restart couchbase-server
0
03.10.2018, 04:29
1 ответ

Попробуйте это,

В основном в скрипте expect, В этой части кода:

send "/usr/local/bin/authtool --totp --base32 $(sed -n '/^secret=/s///p' ~/.Auth.sc)\r"

Он рассматривает $(sed -n '/^secret=/s///p' ~/.Auth.sc)как ожидаемую переменную, что на самом деле не так.

Так что попробуй сделать так, т.е. сбежать$()

send "/usr/local/bin/authtool --totp --base32 \$\(sed -n '/^secret=/s///p' ~/.Auth.sc\)\r"

Или попробуйте использовать обратные кавычки.

send "/usr/local/bin/authtool --totp --base32 `sed -n '/^secret=/s///p' ~/.Auth.sc`\r"
1
28.01.2020, 04:13

Теги

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