質問: お世話になります 何度も修正してすいません 一から作成しなおしてみて、詰まっている部分があります 修正したファイルです ``` #!/bin/sh PASS1=hogehoge TARGET_DIR="/home/public_html" expect -c " # タイムアウト値の指定 set timeout 10 spawn sftp user@www.test.jp expect \"Are you sure you want to continue connecting (yes/no)?\" { send \"yes\n\" expect \"password:\" send \"${PASS1}\n\" } \"password:\" { send \"${PASS1}\n\" } interact " ``` このプログラムをターミナルで実行することで sftp> の表示をすることはできたのですが、この次のコマンドの cd を入力したいのですが、 expect \"sftp>\" send \"cd ${ディレクトリ}\n\" としてもうまくいきません すいませんがsftpにログインした次のコードはどのように書けばいいのでしょうか?
回答: 実際に試してみるしかないと思います。 対話的なコマンド入力になるので、タイミングによってうまくいったり、いかなかったりするかもしれません。 expect を使った方がより確実かと。 もしくは、scp が許可されているのであれば、パスワード認証ではなく鍵認証にして scp を使った方がいいと思います。