我正在尝试编写一个通过 SSH 连接到服务器的 shell 脚本,然后提示用户输入文件/文件夹。
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 之后使用 heredoc 而不是双引号来执行这些命令,因为我的 shell 脚本相当大,我不想转义每个双引号。
当我使用双引号时,提示运行良好。但是,现在我使用的是heredoc,提示不再有效。
我能做些什么来获得使用heredoc的提示?如果没有,有什么方法可以让我布局我的脚本,这样提示就可以正常工作,而无需将所有内容都用双引号括起来并转义,如下所示:
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
"