2017-03-14 72 views
0

我想用當前時間戳在遠程服務器上創建一個目錄。爲此我需要下面的代碼才能工作。無法正確地在ssh會話中聲明shell變量

#!/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值是完全丟失。如果我進入遠程機器並逐一運行每個命令,則所有事情都按預期運行。

+1

只是想知道。在8888端口上運行'sshd'有什麼意義? – jm666

+0

請忽略,8888港口不是故意的,對於分心 – abhishek77in

回答

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

...如果在Word中的任何字符被引用,分隔符是引用刪除對詞的結果,而線在這裏 - 文件沒有擴大。如果單詞不加引號,這裏的文件的所有行都受到參數擴展...