2016-01-02 102 views
0

以下bash腳本的結果是輸出「空行」猛砸變量始終是空

ssh [email protected]_service <<EOF 
    START_SERVICE_TIME_IS_UP=124 
    echo $START_SERVICE_TIME_IS_UP 
    exit 
EOF 

不明白爲什麼。我期望在輸出中看到「124」。遠程服務器正在運行Red Hat Linux。

+1

您也可以使用[shellcheck(http://www.shellcheck.net)。它說:「[Quote'EOF'](https://github.com/koalaman/shellcheck/wiki/SC2087)使這裏的文檔擴展發生在服務器端而不是客戶端。」 –

回答

6

這裏doc中的變量由本地shell擴展,除非你引用here-doc。將end-token放在引號中引用here-doc。

ssh [email protected]_service <<'EOF' 
    START_SERVICE_TIME_IS_UP=124 
    echo $START_SERVICE_TIME_IS_UP 
    exit 
EOF