現在、次の自動化されたSSHスクリプトコードがあります。
#!/usr/bin/expect -f
set pw "mypass"
spawn ssh [email protected]
expect "Password:"
send "$pw\r"
expect "Verification code:"
send "/usr/local/bin/authtool --totp --base32 $(sed -n '/^secret=/s///p' ~/.Auth.sc)\r"
デフォルトでは、2段階のログインプロセスがあります。 1つ目はパスワード(動作)、2つ目は認証(動作しません)です。
sed 部分に達するたびに、次が返されます。
can't read "(sed -n '/^secret=/s///p' ~/.Auth.sc)": no such variable
while executing
どうすればいいのかわかりませんが、バックスラッシュとエスケープ処理に関連していると思われます。私は正しい道を行っていますか?
ベストアンサー1
in はTcl
同じな[...]
ので、$(...)
コードを次のように書く必要があります。
send "/usr/local/bin/authtool --totp --base32 [exec sed -n '/^secret=/s///p' $::env(HOME)/.Auth.sc]\r"