これは非常に基本的な質問です。私は初めてbashに触れ、それを行う方法を知りません。残念ながら、インターネット検索ではどこでも私を見つけることができませんでした。
私の目標は、sftpを使用してサーバーに接続し、ファイルをアップロードしてから切断することです。
次のスクリプトがあります。
UpdateJar.sh
#!/bin/bash
sftp -oPort=23 [email protected]:/home/kalenpw/TestWorld/plugins
#Change directory on server
#cd /home/kalenpw/TestWorld/plugins
#Upload file
put /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar
exit
問題は、このスクリプトがSFTP接続を確立しても何もしないことです。接続に手動で終了を入力すると、putコマンドを実行しようとしますが、sftpセッションが閉じられるため、put:command not findとのみ表示されます。
どうすれば正しく動作させることができますか?
ありがとう
ベストアンサー1
このドキュメントのコマンドを渡すようにスクリプトを変更できます。たとえば、次のようになります。
#!/bin/bash
sftp -oPort=23 [email protected]:/home/kalenpw/TestWorld/plugins <<EOF
put /home/kalenpw/.m2/repository/com/Khalidor/TestPlugin/0.0.1-SNAPSHOT/TestPlugin-0.0.1-SNAPSHOT.jar
exit
EOF
これ<<
後に名前(EOF
)を付けると、その名前(単独)が行の先頭に見つかるまで次の行を渡すようにスクリプトに指示します。