サーバーに SSH 接続し、ユーザーにファイル/フォルダーを入力するように求めるシェル スクリプトを作成しようとしています。
ssh $SERVER <<EOF
cd downloads/
read -e -p "Enter the path to the file: " FILEPATH
echo $FILEPATH
eval FILEPATH="$FILEPATH"
echo "Downloading $FILEPATH to $CLIENT"
EOF
SSH の後でこれらのコマンドを実行するために二重引用符の代わりにヒアドキュメントを使用しています。これは、シェル スクリプトがかなり大きく、すべての二重引用符をエスケープしたくないためです。
二重引用符を使用していたとき、プロンプトは正常に機能しました。ただし、ヒアドキュメントを使用しているため、プロンプトが機能しなくなりました。
ヒアドキュメントを操作するプロンプトを表示するにはどうすればよいですか? そうでない場合は、次のように、すべてを二重引用符で囲んだりエスケープしたりせずにプロンプトが機能するように、スクリプトをレイアウトする方法はありますか。
ssh $SERVER "
cd downloads/
read -e -p \"Enter the path to the file: \" FILEPATH
echo $FILEPATH
eval FILEPATH=\"$FILEPATH\"
echo \"Downloading $FILEPATH to $CLIENT\"
exit
"