通常のユーザーに接続する必要がある bash+expect スクリプトがあります。特定のファイルを読み込んで変数に保存し、その特定のファイルを root ユーザーで使用したいと考えています。どうすれば値を取得できますか? 私のスクリプトは次のとおりです。
#!/bin/bash
set prompt ">>> "
set command ls /root/test1
expect << EOF
spawn su root
expect "password:"
send "rootroot\r"
expect "$prompt\r"
send "$command\r"
expect "$prompt\r"
expect -re "(.*)\r\n$prompt\r\n"
EOF
echo "$command"
if [ ! -f "$command" ]; then
echo "file is not exist"
else
echo "file is exist"
fi
シェルスクリプトを実行すると、次の出力が表示されます。
ls: /root/: 権限が拒否されました
ファイルが存在しません
基本的にテストはありますが、「ファイルが存在しません」と表示されます