我正在尝试使用当前时间戳在远程服务器上创建目录。为此我需要以下代码才能工作。
#!/usr/bin/env bash
ssh -l pi something.com -p 8888 << EOF
CURRENT_TIMESTAMP=`date +%s`
echo "creating directory with timestamp $CURRENT_TIMESTAMP"
EOF
但是当我看到echo命令的输出时,$CURRENT_TIMESTAMP
值完全丢失。如果我ssh到远程计算机并逐个运行每个命令,一切都按预期工作。
答案 0 :(得分:2)
尝试
ssh -l pi something.com -p 8888 << "EOF"
CURRENT_TIMESTAMP=`date +%s`
echo "creating directory with timestamp $CURRENT_TIMESTAMP"
EOF
并查看man -P'less +/<<' bash
...如果引用了单词中的任何字符,则分隔符是单词上引号删除的结果,并且不会展开here-document中的行。如果单词不加引号,则here-document的所有行都要进行参数扩展...